用C语言求区间2到100内所有的素数,存于数组a中
时间: 2025-01-29 12:17:05 浏览: 93
要在C语言中求区间2到100内所有的素数并将其存储在数组a中,可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)。这种方法的基本思想是从最小的素数2开始,依次标记所有2的倍数为非素数,然后找到下一个未被标记的数并重复此过程,直到处理完所有数。
以下是实现这个功能的C语言代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX 100
int main() {
bool isPrime[MAX + 1];
int a[MAX / 2];
int count = 0;
// 初始化数组,假设所有数都是素数
for (int i = 2; i <= MAX; i++) {
isPrime[i] = true;
}
// 埃拉托斯特尼筛法
for (int i = 2; i * i <= MAX; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= MAX; j += i) {
isPrime[j] = false;
}
}
}
// 将素数存入数组a中
for (int i = 2; i <= MAX; i++) {
if (isPrime[i]) {
a[count++] = i;
}
}
// 输出结果
printf("2到100之间的素数有:\n");
for (int i = 0; i < count; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
这个程序首先初始化一个布尔数组`isPrime`,假设所有数都是素数。然后使用埃拉托斯特尼筛法标记非素数。最后,将所有素数存入数组`a`中并输出结果。
阅读全文
相关推荐


















