我是一名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