用C语言编写一个函数,求给定正整数m(包括m)以内的素数之和
时间: 2024-05-07 09:17:21 浏览: 120
好的,以下是用C语言编写的函数,可以求给定正整数m(包括m)以内的素数之和:
```c
#include <stdio.h>
#include <stdbool.h>
int prime_sum(int m) {
int total = 0;
bool is_prime;
for (int i = 2; i <= m; i++) {
is_prime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
total += i;
}
}
return total;
}
int main() {
int m;
printf("请输入一个整数m:");
scanf("%d", &m);
printf("%d以内的素数之和为:%d", m, prime_sum(m));
return 0;
}
```
上述代码中,首先我们定义了一个 `prime_sum` 函数,它接收一个整数m作为参数,返回小于等于m的所有素数的和。在函数体中,我们使用了两个循环。外层循环用于枚举所有小于等于m的整数 i。内层循环用于判断 i 是否为素数,如果是,则将其累加到 `total` 变量中。
为了判断一个数是否为素数,我们定义了一个布尔型变量 `is_prime`,并将其初始化为 true。然后在内层循环中,枚举小于 i 的所有正整数 j,并通过判断 i 能否被 j 整除,来更新 `is_prime`。如果最终 `is_prime` 的值为 true,则表示 i 是素数,我们将它累加到总和中。
最后在 `main` 函数中,我们通过 `scanf` 函数获取用户输入的整数m,并将其传递给 `prime_sum` 函数进行计算。结果打印在屏幕上。
阅读全文