项目Euler#10 Java无法正常工作

时间:2015-04-28 22:29:30

标签: java project

低于10的素数之和为2 + 3 + 5 + 7 = 17.

找出200万以下所有素数的总和。

            public class Problem10
            {
                public static void main(String[] args)
                {
                    int sum = 17;
                    for(long i=11; i<2000000; i+=2)
                    {
                        if(isPrime(i)) sum += i;
                    }
                    System.out.println(sum);    

                }

                public static boolean isPrime(long n)
                {
                    if(n==2) return true;
                    if(n%2 == 0) return false;
                    for(long i=3; i<= Math.sqrt(n); i+=2)
                    {
                        if(n%i == 0) return false;
                    }
                    return true;
                }
            }

我不知道这有什么问题。它不断打印1179908154。

1 个答案:

答案 0 :(得分:3)

您的<div class="list card"> <div ng-repeat="destination in destinations | isActive"> <div class="item item-divider"> <span>{{title}}</span> </div> <a href="#" class="item item-icon-left item-icon-right item-balanced"> <i class="icon ion-ios-home"></i> <div> <div>{{text1}}</div> <div><b>{{text2}}</b></div> <div>{{text3()}}</div> <div>{{text4()}}</div> </div> <i class="icon ion-ios-filing"></i> </a> </div> </div> sum,但整数溢出正在发生。如果您将数据类型更改为int,则答案将更改为long,该值会超过最大可能142913828922That appears to be the correct answer.