我是一名java學生,我剛開始使用project euler來讓我練習代碼寫作並只是輸入一般信息。我目前停留在第7個問題上,無法找到我的代碼出了什麼問題。試圖找到Java中的10,001st素數(歐拉項目)
public static void main(String[] args)
{
int num, remainder, divisor;
boolean working = true;
num = 2;
for(int count = 0; count <= 10001; count++)
{
divisor = num - 1;
remainder = 1;
working = true;
while(working != true)
{
remainder = 1;
divisor = num - 1;
while(remainder!=0)
{
remainder = num%divisor;
if(divisor==1);
{working = false;}
divisor--;
}
num = num++;
}
}
//System.out.println(num -1);
}
我得到的輸出是1,我找不出原因。我對編碼非常陌生,所以請不要在我的代碼瘋狂,如果它是糟糕和低效的LOL。
題外話,但你檢查素數的方法是非常低效的。 1,n很難不被n-1整除。第二,你不需要檢查甚至除數。3,你甚至不需要檢查從1到n-1的所有除數,只有從1到sqrt(n)就足夠了 – 2015-03-03 07:54:44
我做了這樣一次。如果你堅持你已經找到的素數,你只需要檢查這些數字。 – Jake 2015-04-06 13:58:07