我的输出时间超过20分钟是否有任何方法可以减少快速投入的时间
public class Problem10 {
public static void main(String[] args) {
long temp =0;
int n=2000000;
for(long i=2; i<n; i++){
System.out.println((i));
boolean isprime = true;
for(long j=2; j<i; j++){
if(i%j==0){
isprime =false;
break;
}
}
if(isprime)
{temp +=i;
}
}
System.out.println(temp);
}
}
答案 0 :(得分:3)
如果我计算程序的复杂程度大致为BigO(n*n)
。如果n
值为2000000
,则需要2000000 * 2000000
次迭代才能完成整个任务。
这是非常大的时间。我建议你把println
放在你的循环中,它会提醒你它仍在运行。 :)
答案 1 :(得分:1)
您的数据类型太小而无法容纳该值,因此请将其更改为 long 或BigInteger类型以进行优化,您可以将不正确的逻辑更改为其他逻辑。看项目euler网站
答案 2 :(得分:0)
将temp和int的数据类型更改为long,它将起作用