求两个3位数之间的所有素数之和

it2023-08-13  112

题目内容:

对任意给定的两个正整数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; } }
最新回复(0)