问题描述:
计算m到n之间所有素数的和,其中 2 <= m <=n <=100
输入格式:
请在这里写输入格式。例如:输入两个正整数
输出格式:
请在这里描述输出格式。例如:输出两个正整数之间的素数和。
输入样例:
在这里给出一组输入。例如:
2 10
输出样例:
在这里给出相应的输出。例如:
17
思路:
- 首先,创建一个Scanner对象,用于从控制台读取用户输入的两个整数n和m。
- 初始化一些变量:flag用于标记一个数是否为素数(0表示是素数,1表示不是);sum用于累加所有素数的和;i和j用作循环计数器。
- 通过一个外层循环,代码遍历从n到m的所有整数。
- 对于每一个整数i,通过一个内层循环从2到i-1,检查i是否能被其中的任何一个数整除。如果可以,将flag设为1,表示i不是素数。
- 在内层循环结束后,如果flag仍然是0(即i是素数),则将i加到sum中。
- 循环结束后,打印出sum,也就是在n到m之间的所有素数的和。
代码:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
int n, m;
int flag = 0;
int sum = 0;
int i;
Scanner scan = new Scanner(System.in);
n = scan.nextInt();
m = scan.nextInt();
for(i = n; i <= m; i++){
for(int j = 2; j < i; j++){
if(i % j == 0) flag = 1; //i不为素数
}
if(flag != 1) sum = sum + i;
flag = 0;
}
System.out.println(sum);
}
}
运行截图: