用C语言编程 程序功能:输入正整数 m 和 n(1≤m≤n≤500),统计并输出 m 到 n 之间 的素数个数及素数和。素数就是只能被 1 和自身整除的正整数,1 不是素数,2 是素数。要求 定义并调用函数 prime(i)判断 i 是否为素数。
时间: 2024-03-17 09:42:24 浏览: 15
好的,这是一个关于统计素数的 C 语言程序,以下是代码:
```c
#include <stdio.h>
// 判断是否为素数的函数
int prime(int n) {
if (n <= 1) {
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n, count = 0, sum = 0;
printf("请输入 m 和 n:");
scanf("%d %d", &m, &n);
for (int i = m; i <= n; i++) {
if (prime(i)) {
count++;
sum += i;
}
}
printf("%d 到 %d 之间的素数个数为 %d,素数和为 %d\n", m, n, count, sum);
return 0;
}
```
代码的主要思路是先定义一个判断是否为素数的函数 `prime`,然后在 `main` 函数中输入 m 和 n,然后遍历从 m 到 n 之间的每一个数,判断是否为素数,如果是素数,则计数器加一,同时将素数的值加到 sum 中。最后输出素数个数和素数和。
需要注意的是,判断素数时,可以只判断到 i 的平方根即可,这是因为如果 i 不是素数,那么它一定可以分解成两个数 a 和 b,其中 a 和 b 都不大于 i 的平方根,如果 a 和 b 都大于 i 的平方根,那么它们的积就会大于 i,与 i 不相等,不符合条件。