/**
* 素数和(5分) 题目内容:
*
* 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
*
* 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数 之间所有的素数的和,包括第n个素数和第m个素数。
*
* 注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。
*
* 输入格式:
*
* 两个整数,第一个表示n,第二个表示m。
*
* 输出格式:
*
* 一个整数,表示第n个素数到第m个素数之间所有的素数的和, 包括第n个素数和第m个素数。
*
* 输入样例: 2 4
*
* 输出样例:
*
* 15
*
较为规范的代码编写,将一小块知识点如题中对素数的判断另提出一个函数,在素数判断上做了一点小优化,只需判断2到根号n是否有数能被整除即可具体代码的规范如下
文本代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//开始
int m = sc.nextInt();//结束
int res = 0;//结果
int count = 1;//第几个素数
int num = 2;//素数
while (count <= m) {
if (isPrime(num)) {//i是素数且在所取范围内
if(count >= n&&count <= m)
res += num;
count++;
}
num++;
}
System.out.println(res);
}
private static boolean isPrime(int num) {//检查2-根号n之间是否有能整数整除n,没有即为素数
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
}