public static void main(String args[])
{
long sum = 0;
for(int i=0; i<Integer.parseInt(args[0]); i++)
{
if(i != 1 && i%2 != 0 && i%3 != 0 && i%5 != 0 && i%7 != 0)
{
sum = sum + i;
}
if(i==2 || i==3 || i==5 || i==7)
{
sum = sum + i;
}
}
System.out.println(sum);
}
每當我插入100,它就會生成1060,這是正確的。但是,它會產生1,000,000個錯誤的號碼(114,285,285,737)。爲什麼我的程序爲100以下的所有素數的總和生成正確的輸出,但是不低於100萬?
對於100以下的所有值,它正確生成,沒有嘗試過其他任何東西。我不只是檢查100.
這不是一個有效的方法來找到所有的素數 - 它會接受許多數字,而不是*素數。 – user2864740
程序應該計算什麼?也許你應該在你的陳述中包含更多的素數,而不僅僅是1,2,3,5和7,以便爲更高的數字正確地得到答案。 – Ghostkeeper
我看不到上面的程序如何檢查質數 – Prateek