C语言筛选法求100之内的素数
时间: 2024-12-18 08:32:35 浏览: 86
在C语言中,可以使用筛法(也叫埃拉托斯特尼筛法)来寻找100以内的素数。这是一种常见的求解范围内所有质数的有效算法,其基本思想是从2开始,将每个找到的素数的所有倍数标记为合数,直到达到给定范围的最大值。以下是简单的步骤:
```c
#include <stdio.h>
// 定义最大范围
#define MAX_RANGE 100
void sieve_of_eratosthenes(int primes[]) {
// 初始化一个布尔数组,所有数默认认为是素数
for (int i = 0; i <= MAX_RANGE; i++) {
primes[i] = 1;
}
// 将第一个数字2设为素数,并开始筛选过程
primes[1] = 0;
// 对于从2到√MAX_RANGE的所有数
for (int i = 2; i * i <= MAX_RANGE; i++) {
// 如果primes[i]仍为1(表示i是素数)
if (primes[i]) {
// 更新i的倍数为合数
for (int j = i * i; j <= MAX_RANGE; j += i) {
primes[j] = 0;
}
}
}
// 打印出100以内的素数
for (int i = 2; i <= MAX_RANGE; i++) {
if (primes[i]) {
printf("%d ", i);
}
}
}
int main() {
int prime_array[MAX_RANGE + 1];
sieve_of_eratosthenes(prime_array);
return 0;
}
```
当你运行这段程序时,它会输出100以内的所有素数。
阅读全文
相关推荐


















