Несколько вещей.
Во-первых, ваш isPrim
может быть оптимизирован так, что i
увеличивается только до sqrt(number)
.
Во-вторых, вам нужно return false
, если (number%i == 0)
равно true
. Прямо сейчас он всегда возвращает true
, поэтому ваш код выводит все суммы.
В-третьих, вам нужно изменить istPrimeZahl
на isPrim
(или наоборот), поскольку вы нигде не определили istPrimeZahl
.
В-четвертых, вы можете изменить sum = sum + number
на sum += number
.
Наконец, вы, вероятно, захотите переместить System.out.print
строку на две строки ниже, чтобы она печатала sum
после цикла, а не на каждой итерации цикла.
(Кроме того, вы можете изменить цикл for
, чтобы он начинался с 100 , а не 10 :))
Если вы хотите финальную версию, я вставил ее сюда:
public class Prim {
public static void main(String[] args) {
int end = 200;
int count = 0;
long sum = 0;
for (int number = 100; number<=end; number++) {
if (isPrim(number)) {
sum += number;
count++;
System.out.println(sum);
}
}
}
public static boolean isPrim(int number){
for (int i=2; i*i<=number; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}