本题要求统计给定整数M和N区间内素数的个数并对它们求和。 输入格式: 输入在一行中给出两个正整数M和N(1≤M≤N≤500)。 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。 输入样例: 10 31 输出样例: 7 143
时间: 2023-11-14 19:07:59 浏览: 111
求m以内素数的和
5星 · 资源好评率100%
这道题可以使用筛法求素数,具体实现可以使用boolean数组标记每个数是否为素数,然后从2开始遍历到N,如果当前数是素数,则将其倍数全部标记为非素数。最后再遍历一遍M到N的区间,统计素数个数和素数的和即可。
Java代码如下:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
boolean[] isPrime = new boolean[n + 1];
int sum = 0;
int count = 0;
for (int i = 2; i <= n; i++) {
if (!isPrime[i]) {
if (i >= m) {
count++;
sum += i;
}
for (int j = i * 2; j <= n; j += i) {
isPrime[j] = true;
}
}
}
System.out.println(count + " " + sum);
}
}
```
阅读全文