【发布时间】:2013-12-02 16:57:04
【问题描述】:
我试图找出所有低于 200 万的素数的总和。 不幸的是,我的 Java Eratosthenes 筛子似乎无法正常工作。我的错误在哪里? 请不要发布完全不同的代码版本,请纠正我的错误。
这是我的 Java 代码:
public class Euler10 {
public static void main(String args[])
{
int index;
int k;
int seq[]= new int[2000001];
for (int i=0; i<seq.length; i++)
{
seq[i] = i;
}
for (index=2; index<= (int) Math.sqrt(20000000); index++);
{
if (seq[index]!=0)
{
k= index;
while (index<=(int) Math.sqrt(20000000))
{
index *= k;
seq[index]=0;
}
}
}
long somma =0;
for (int siq:seq)
somma +=siq;
System.out.println("somma "+somma);
}
}
【问题讨论】:
-
筛子,不是围城,埃拉托色尼的围城听起来很有趣:)