利用爱拉托斯散筛法求出500以内的全部素数 用c语言实现
时间: 2024-10-07 08:07:59 浏览: 43
埃拉托斯特尼筛法是一种古老的算法,用于找出一定范围内所有素数。以下是使用C语言实现的一个简单版本,用于找到500以内的所有素数:
```c
#include <stdio.h>
void sieve_of_eratosthenes(int limit) {
// 初始化一个布尔数组,所有元素初始化为true表示它们可能是素数
int prime[limit+1];
for (int i = 0; i <= limit; i++) {
prime[i] = 1;
}
// 素数的第一个数字是2
prime[0] = prime[1] = 0;
// 遍历数组,从2开始,将所有的倍数标记为非素数
for (int p = 2; p * p <= limit; p++) {
if (prime[p]) {
for (int i = p * p; i <= limit; i += p) {
prime[i] = 0;
}
}
}
// 输出所有的素数
printf("素数:");
for (int p = 2; p <= limit; p++) {
if (prime[p]) {
printf("%d ", p);
}
}
}
int main() {
int limit = 500;
sieve_of_eratosthenes(limit);
return 0;
}
```
当运行这个程序时,它会输出500以内所有的素数。
阅读全文