Project Euler#10 Java不工作
低于10的素数之和为2+3+5+7=17 求200万以下所有素数之和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)
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.谢谢!我就知道会是这样简单的事情