gpt4 book ai didi

java - 求 200 万以内的素数之和

转载 作者:行者123 更新时间:2023-11-30 07:11:32 25 4
gpt4 key购买 nike

我试图找到所有素数的总和<=200万,所以我使用埃拉托斯特尼筛来标记所有素数。当我声明大小为200万的 boolean 数组时,我得到了这个错误

             "main" java.lang.ArrayIndexOutOfBoundsException: 2000000

由于总和可以是两个大,所以我使用 long 而不是 sum 。这是 java 中的代码

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];

现在它的范围是0到2000000

关于java - 求 200 万以内的素数之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com