我的代碼有什麼問題?編寫一個程序,將所有素數從1增加到100
預計輸出= 1060
我1000素數之和檢查。它會顯示正確 輸出3682913
public class PrimeNumber {
public static void main(String args[]){
int number = 2;
int count = 0;
long sum = 0;
while(count <100){
if(isPrimeNumber(number)){
sum += number;
count++;
}
number++;
}
System.out.println(sum);
}
private static boolean isPrimeNumber(int number){
for(int i=2; i<=number/2; i++){
if(number % i == 0){
return false;
}
}
return true;
}
}
我想你發現第100黃金數字,而不是1到100之間的素數。 – JETM
您正在查找前100個素數,而非1-100素數。改變while while(number <100) – bpgeck
作爲一個附註,你可以在'i <= Math.sqrt(i)'處停止'for'循環,儘管在進入循環之前你應該計算一次。 – bradimus