Project Euler#10 Java不工作

Project Euler#10 Java不工作,java,project,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)

低于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;
                }
            }
公共类问题10
{
公共静态void main(字符串[]args)
{
整数和=17;

对于(long i=11;i您的
sum
是一个
int
,但是发生了整数溢出。如果您将数据类型更改为
long
,那么答案将更改为
142913828922
,这比
int
可能的最大值要长您的
sum
是一个
int
,但是发生了整数溢出。如果将数据类型更改为
long
,则答案将更改为
142913828922
,这比最大可能的
int
长您的
sum
int
,但会发生整数溢出。如果将数据类型更改为
long
,则答案将更改为
142913828922
,它比可能的最大值
int

长。您的
总和是
int
,但是发生了整数溢出。如果您将数据类型更改为
long
,则答案将更改为
142913828922
,它比可能的最大值
int
长。正确的答案是什么sult?你把我定义为长的,但不是和的@Mureinik 142913828922。谢谢!我知道这会很简单什么是正确的结果?你把我定义为长的,但不是和的@Mureinik 142913828922。谢谢!我知道这会很简单什么是正确的结果?你把我定义为长的,但不是和的@Mureinik 142913828922.谢谢!我就知道会是这样简单的结果是什么?你把I定义为长的,而不是总和,@Mureinik 142913828922.谢谢!我就知道会是这样简单的事情