Java 求素数之和达200万

Java 求素数之和达200万,java,arrays,primes,Java,Arrays,Primes,我试图找到所有素数的总和给你: static long[] isprime=new long[2000001]; 现在它的范围是从0到2000000在你的内部循环中,它不应该是(int j=i;…)吗?它起作用了,我以前做得不对,因为我们已经知道2000000不是一个素数,另一个稍微好一点的解决方案是使用

我试图找到所有素数的总和给你:

static  long[] isprime=new long[2000001];

现在它的范围是从0到2000000

在你的内部循环中,它不应该是
(int j=i;…
)吗?它起作用了,我以前做得不对,因为我们已经知道2000000不是一个素数,另一个稍微好一点的解决方案是使用
<2000000
而不是

public class Summationofprimes {
    static  long[] isprime=new long[2000000];

     static void sieve(){
         Arrays.fill(isprime, 0);//all marked false
         isprime[1]=1;isprime[0]=1;
         for(int i=2;i*i<=2000000;i++){
             if(isprime[i]==0){
                // print(i);
                // sum+=i;
                //print(sum);
                 for(int j = i * i; j <= 2000000 ;j += i){
                     isprime[j]=1;// all multiples marked true 
                 }
             }
         }


    }

    public static void main(String[] args) {
        sieve();
        long sum=0;
        System.out.println("sum is :");
        for(int i=2;i<=2000000;i++){
            if(isprime[i]==0){
                sum+=i;


        }
        }
        System.out.println(sum);
        // TODO Auto-generated method stub

    }

}
static  long[] isprime=new long[2000001];