Я реализовал решето Эратосфена на Java из псевдокода:
public static void sieveofEratosthenes(int n) {
boolean numArray[];
numArray = new boolean[n];
for(int i = 0; i < n; i++)
numArray[i] = true;
int a = 0;
for(int i = 2; i < Math.sqrt((double)n); i++) {
if(numArray[i]) {
for(int j = (int)Math.pow(i, 2); j < n; a++) {
numArray[j] = false;
j += (a * i);
}
}
}
for(int i = 2; i < n; i++) {
if(numArray[i])
System.out.println(i);
}
}
Вывод, который он дает мне, когда мне 15 лет:
2
3
5
7
8
11
12
13
14
Почему некоторые из этих значений неверны? Я считаю, что моя ошибка заключается в том, как я определяю и использую массив bool. Спасибо!
j
)? - person Kon   schedule 22.08.2014