我們認(rèn)為2是第一個(gè)素?cái)?shù),3是第二個(gè)素?cái)?shù),5是第三個(gè)素?cái)?shù),依次類推。現(xiàn)在,給定兩個(gè)整數(shù)n和m,0<n<=m<=200,你的程序要計(jì)算第n個(gè)素?cái)?shù)到第m個(gè)素?cái)?shù)之間所有的素?cái)?shù)的和,包括第n個(gè)素?cái)?shù)和第m個(gè)素?cái)?shù)。
1 回答

winner4265975
TA貢獻(xiàn)19條經(jīng)驗(yàn) 獲得超17個(gè)贊
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); } }
添加回答
舉報(bào)
0/150
提交
取消