我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
1 回答
winner4265975
TA贡献19条经验 获得超17个赞
import java.util.ArrayList;
import java.util.List;
public class SumPrime {
public boolean isPrime(int num){
if(num<2)
return false;
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i==0)
return false;
}
return true;
}
public List<Integer> primeList(int maxNum){
List<Integer> list=new ArrayList<>();
for(int i=0;i<maxNum;i++){
if(isPrime(i))
list.add(i);
}
return list;
}
public int sum(int n,int m,List<Integer> list){
if(n<0||m<0)
throw new RuntimeException("索引越界!");
int bigger;
int samller;
if(n>m){
bigger=n;
samller=m;
}
else{
bigger=m;
samller=n;
}
if(bigger>list.size())
throw new RuntimeException("索引越界!");
int sum=0;
for(int i=samller;i<=bigger;i++)
sum+=list.get(i);
return sum;
}
public static void main(String[] args) {
SumPrime sumPrime=new SumPrime();
int sum=sumPrime.sum(1,2,sumPrime.primeList(200));
System.out.println(sum);
}
}添加回答
举报
0/150
提交
取消
