c语言素数求和
时间: 2025-05-20 18:18:32 浏览: 23
### C语言实现素数求和功能
以下是基于已有引用内容设计的一个完整的C语言程序,用于计算指定区间 `[M, N]` 内的素数数量及其总和。
#### 完整代码示例
```c
#include <stdio.h>
#include <math.h>
// 判断是否为素数的函数
int isPrime(int num) {
if (num <= 1) return 0; // 小于等于1的数不是素数[^3]
int limit = sqrt(num);
for (int i = 2; i <= limit; i++) {
if (num % i == 0) return 0;
}
return 1;
}
int main() {
int M, N;
scanf("%d %d", &M, &N);
int primeCount = 0, primeSum = 0;
for (int i = M; i <= N; i++) {
if (isPrime(i)) { // 调用素数判断函数
primeCount++;
primeSum += i;
}
}
printf("%d %d\n", primeCount, primeSum); // 输出结果
return 0;
}
```
#### 解析说明
上述代码实现了以下功能:
1. **输入处理**:通过 `scanf` 函数读取两个整数 `M` 和 `N`,表示区间的起始值和结束值。
2. **素数判定逻辑**:定义了一个名为 `isPrime` 的辅助函数来检测某个数字是否为素数。该函数采用了平方根优化方法,减少了不必要的迭代次数。
3. **遍历与统计**:在主函数中使用 `for` 循环逐一检查范围内的每一个数值,并调用 `isPrime` 进行验证。如果当前值是素数,则更新计数器 (`primeCount`) 并将其加入到累积和 (`primeSum`) 中。
4. **输出结果**:最后打印满足条件的素数总数以及这些素数之和。
#### 示例运行
假设用户输入如下数据:
```
10 31
```
则程序会依次扫描从 `10` 至 `31` 所有整数中的素数部分——即 `{11, 13, 17, 19, 23, 29, 31}` ——最终得出其数目为 `7` ,而对应的累加值得到的是 `143` 。因此屏幕显示应呈现为:
```
7 143
```
---
### 相关问题
阅读全文
相关推荐


















