欧拉问题10没有得到输出的ans

时间:2013-02-28 06:07:58

标签: java

我的输出时间超过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);

} 

}

3 个答案:

答案 0 :(得分:3)

如果我计算程序的复杂程度大致为BigO(n*n)。如果n值为2000000,则需要2000000 * 2000000次迭代才能完成整个任务。

这是非常大的时间。我建议你把println放在你的循环中,它会提醒你它仍在运行。 :)

答案 1 :(得分:1)

您的数据类型太小而无法容纳该值,因此请将其更改为 long 或BigInteger类型以进行优化,您可以将不正确的逻辑更改为其他逻辑。看项目euler网站

答案 2 :(得分:0)

将temp和int的数据类型更改为long,它将起作用