4.1 素数和
题目内容:
我们认为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 Prime {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n, m, x;
n = in.nextInt();
m = in.nextInt();
if (n>m) //如果n、m大小顺序不对,进行交换
{
x = n;
n = m;
m = x;
}
int count = 0; //素数个数
int num = 1; //判断是不是素数
int sum = 0; //素数和
while (count < m)
{
num++; //num++,循环初始值为 2
boolean prime = true; //布尔值初始值为 true
for (int i=2; i<num; i++) //循环判断是不是素数
{
if (num % i == 0 ) //如果能被整数,说明不是素数,布尔值变为 false,跳出循环
{
prime = false;
break;
}
}
if (prime == true) //布尔值为 true,说明为素数,素数个数累加
{
count++;
if (count >= n && count <= m) //判断素数是否在输入范围内,在范围内就进行累加
{
sum += num;
}
}
}
System.out.println(sum); //循环结束,输出
}
}