用C语言编程出一百以内所有的素数,并输出个数
时间: 2024-12-12 16:17:36 浏览: 7
在C语言中,我们可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)来找出100以内的所有素数。这是一个简单而有效的算法。下面是一个示例程序:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX 100
void sieve_of_eratosthenes(bool prime[]) {
for (int p = 2; p * p <= MAX; p++) {
// 如果prime[p]已经被标记为非素数,则跳过
if (!prime[p])
continue;
// 将p的倍数标记为非素数
for (int i = p * p; i <= MAX; i += p)
prime[i] = false;
}
}
int main() {
bool prime[MAX + 1]; // 初始化所有数字为素数
for (int i = 2; i <= MAX; i++)
prime[i] = true;
sieve_of_eratosthenes(prime);
int count = 0;
for (int i = 2; i <= MAX; i++)
if (prime[i])
count++, printf("%d ", i); // 输出素数同时累加计数
printf("\n100以内共有%d个素数。\n", count);
return 0;
}
```
这段程序首先初始化从2到MAX的所有数字都为素数,然后通过埃拉托斯特尼筛法去除其因子,最后输出并计数素数。
阅读全文