用c语言输入2个正整数m和n,统计并输出m和n之间的素数的个数以及这些素数的和。要求定义并调用函数Prime(m)判断m是否为素数,当m为素数时,返回1,否则返回0。
时间: 2025-02-05 16:12:07 浏览: 81
好的,我可以帮你用C语言编写一个程序来实现这个功能。以下是代码实现:
```c
#include <stdio.h>
#include <math.h>
// 函数声明
int Prime(int m);
int main() {
int m, n;
int count = 0;
int sum = 0;
// 输入两个正整数
printf("请输入两个正整数m和n(用空格分隔):");
scanf("%d %d", &m, &n);
// 确保m小于等于n
if (m > n) {
int temp = m;
m = n;
n = temp;
}
printf("m和n之间的素数有:");
for (int i = m; i <= n; i++) {
if (Prime(i)) {
printf("%d ", i);
count++;
sum += i;
}
}
printf("\n素数的个数为:%d\n", count);
printf("素数的和为:%d\n", sum);
return 0;
}
// 判断一个数是否为素数的函数
int Prime(int m) {
if (m < 2) return 0;
for (int i = 2; i <= sqrt(m); i++) {
if (m % i == 0) return 0;
}
return 1;
}
```
这个程序首先定义了一个`Prime`函数来判断一个数是否为素数。然后在`main`函数中,我们:
1. 从用户那里获取输入的两个正整数m和n。
2. 确保m小于等于n,如果不是就交换它们。
3. 使用一个循环遍历m和n之间的所有整数。
4. 对每个数调用`Prime`函数,如果返回值为1,则表示是素数,我们将其打印出来,并增加计数器和总和。
5. 最后,输出素数的个数和总和。
这个程序满足了你的要求,包括定义并使用`Prime`函数来判断素数,以及统计和输出m和n之间的素数个数和总和。
阅读全文
相关推荐



















