统计素数并求和 本题要求统计给定整数M和N区间内素数的个数并对它们求和。 输入格式: 输入在一行中给出2个正整数M和N(1<=M<=N<=500)。 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。
时间: 2024-10-23 12:16:54 浏览: 155
要编写一个C程序来统计给定范围内(M到N)的素数个数并对它们求和,首先我们需要定义一个辅助函数来判断一个数是否为素数,然后遍历指定范围内的每个数,统计素数并将它们加起来。以下是一个简单的实现:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int M, N;
scanf("%d%d", &M, &N); // 输入M和N
int prime_count = 0;
long long prime_sum = 0;
for (int i = M; i <= N; i++) {
if (is_prime(i)) {
prime_count++;
prime_sum += i;
}
}
printf("%d %lld", prime_count, prime_sum); // 输出素数个数和总和
return 0;
}
```
在这个程序中,`is_prime`函数用于检查一个数是否为素数,主函数则遍历M到N之间的所有数,对素数进行计数和累加。注意这里使用`long long`类型来存储求和结果,因为可能的素数之和可能会超过`int`类型的范围。
阅读全文