C语言素数求和输出1到100之间所有的素数,并求和
时间: 2024-12-11 08:17:05 浏览: 44
在C语言中,我们可以使用经典的"埃拉托斯特尼筛法"来找出1到100之间的所有素数并计算它们的和。埃拉托斯特尼筛法是一种用于找到一定范围内所有素数的有效算法。以下是实现这个功能的一个简单示例:
```c
#include <stdio.h>
void sieve_of_eratosthenes(int limit) {
int prime[limit+1], is_prime[limit+1] = {0}, sum = 0;
// 初始化所有数为质数(假设)
for (int i = 2; i <= limit; i++)
prime[i] = 1;
// 将 0 和 1 标记为非质数
prime[0] = prime[1] = 0;
for (int p = 2; p * p <= limit; p++) {
// 如果prime[p]未被标记,说明p是质数
if (prime[p]) {
// 然后将p的所有倍数标记为非质数
for (int i = p * p; i <= limit; i += p)
prime[i] = 0;
}
}
// 输出所有质数并累加
for (int p = 2; p <= limit; p++) {
if (prime[p])
printf("%d ", p);
sum += p;
}
printf("\nSum of primes from 1 to %d: %d\n", limit, sum);
}
int main() {
sieve_of_eratosthenes(100);
return 0;
}
```
当你运行这段代码,它会输出1到100之间的所有素数,并在最后显示这些素数的总和。
阅读全文