我们认为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
import java.util.Scanner;
public class Main {
private static Scanner in;
public static void main(String[] args) {
// TODO Auto-generated method stub
//求第N至M个素数的和
in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int sum = 0;
int js = 0;
int number = 2;//初始数字
boolean isPrime = true;
int count = 1; //计算器
while(count <= m)
{
int i = 2;
//计算number是不是素数
do
{
//2作为一个特殊的素数,特别判断,如果number是2,直接判断为素数并跳出循环
if(number == 2)
{
isPrime = true;
break;
}
if(number % i == 0)
{
isPrime = false;
break;
}
else
{
isPrime = true;
}
i ++;
}while(i < number);
if(isPrime)
{
js = number; //将素数赋值给js
// System.out.println("素数是:" + number); //打印出所判断出来的素数
if(count >= n && count <= m)//计算第n个至m个素数的和
{
sum += js;
}
count ++; //是素数,计数器+1
}
number ++;//判断完一个数是否素数之后,数字+1继续判断下一个
}
System.out.println(sum);
}
}