這是我尋找素數總和的代碼。它適用於低數字,但如果是2000000
(200萬)它永遠不會結束。任何人都可以幫助我?找到所有素數低於200萬的總和。我的程序不適用於非常大的數字
import java.math.BigInteger;
public class Problem010{
public static void main(String[] args) {
BigInteger sum = new BigInteger("2");
//for (int i=3; i<2000000; i++) {
for(int i=3; i<10; i++){
for (int j=2; j<i; j++){
if (i % j == 0)
break;
else if (i == j+1){
sum = sum.add(BigInteger.valueOf(i));
}
}
}
System.out.println("Sum = "+sum);
}
}
可以建議這些2,1),而不是通過2運行內循環到我,通過2運行到sqrt(i)。 2)跳過偶數 – HJK
2000000以下的所有素數的總和應該適合'長' – Thilo
我相信,你的程序需要花費很多時間才能完成。所以,改變你的算法。 – Masudul