题目内容:
对任意给定的两个正整数n和m,100<n<m<1000, 计算这两个数之间所有素数之和,包含n、m自身。
输入格式:
两个大于0的3位正整数
输出格式:
输出n与m之间的素数之和
输入样例:
200 800
输出样例:
45851
思路:
看到这种题目,我觉得大部分人对于两个数之间所有数的和是没有问题的,关键在于
判断素数。
百度提供了素数的概念:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
这里写写我自己判断素数的方法,非最优,时间跟空间复杂度更好的可以看一下这篇java质数判断/java素数判断
代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int m = scanner.nextInt();
int sum = 0;
for(int i = n;i<= m;i++){
if(isPrime(i)){
sum += i;
}
}
System.out.println(sum);
}
public static boolean isPrime(int m) {
boolean flag = true;
if (m < 2) {
flag = false;
}
for (int i = 2; i <= Math.sqrt(m); i++) {
if (m % i == 0) {
flag = false;
break;
}
}
return flag;
}
}
该博客介绍了如何计算两个3位数之间(包括边界)所有素数的和。给出的示例从200到800,素数之和为45851。博主分享了自己的素数判断方法,并鼓励读者探索更优的解决方案。
6885

被折叠的 条评论
为什么被折叠?



