エラトステネスのふるいに問題があります。だから私は「シャウムのアウトライン」と呼ばれる本からふるいの数学計算を取得しましたが、その本は間違ったコードをプログラムするようにプログラムされていると思います... これは本からのコードです:
public class Sieve
{
final static int P = 800;
static boolean[] isPrime = new boolean[count];
Sieve();
{
for (int i = 2; i<P; i++)
{
isPrime[i] = true;
}
for (int i = 2; i<P/2; i++)
{
if (isPrime[i])
{
for (int j = 2*i; j<P; j += i)
{
isPrime[j] = false;
}
}
}
}
public static void main(String[] args)
{
new Sieve();
print();
}
static void print() {
for (int i=0; i<count; i++)
if (isPrime[i]) System.out.println(i + " ");
else if (i%90==0) System.out.println();
System.out.println();
}}
ええ、私はコードを使用し、「Sieve()」が認識されないという事実のために若干の変更を加えました。以下は私のコードです:
public class Primenumbers
{
final static int count = 1000;
static boolean[] isPrime = new boolean[count];
public static sieve(int count, boolean isPrime);
{
for (int i = 2; i<count; i++)
{
isPrime[i] = true;
}
for (int i = 2; i<count/2; i++)
{
if (isPrime[i])
{
for (int j = 2*i; j<count; j += i)
{
isPrime[j] = false;
}
}
}
}
public static void main(String[] args)
{
for (int i=0; i<count; i++)
{
if (isPrime[i])
{
System.out.println(i + " ");
}
}
}
}
だから...私は何を間違っていますか?助けてくれてありがとう!