指定された長さの素数のセットを出力するアプリケーションを作成しています。これは、1 から 100 までのすべての数字など、一般的な長さのアプリケーションです。
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Sieve
{
private int number;
public Sieve (int maxPrime)
{
number = maxPrime;
}
public Set<Integer> getPrimes()
{
Set<Integer> setNumbers = new TreeSet<Integer>();
for(int i=2; i<=number; i++)
{
setNumbers.add(i);
}
Iterator<Integer> iter = setNumbers.iterator();
while(iter.hasNext())
{
int number1 = iter.next();
for( int i = 2; i <= Math.sqrt(number); i++ )
{
if( number1 % i == 0)
{
iter.remove();
}
}
}
return setNumbers;
}
}
エラーが発生している部分は、if ステートメント内の部分です。それは illegalStateException と言います。誰かがこの問題を解決する方法を理解するのを手伝ってもらえますか?