求简单的程序,感觉写的都很繁琐,要考虑n是不是等于2?

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。


西瓜妈妈
浏览 1395回答 1
1回答

winner4265975

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); } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java