我們認為2是第一個素數,3是第二個素數,5是第三個素數,依次類推?,F在,給定兩個整數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
提交
取消
