c语言程序设计 求2-1000范围内所有的素数
时间: 2024-12-08 07:24:31 浏览: 22
在C语言中,求2到1000之间的所有素数,我们可以使用著名的“埃拉托斯特尼筛法”(Sieve of Eratosthenes)。以下是简单的步骤和代码实现:
首先,我们创建一个布尔数组`isPrime[1001]`,初始化所有元素为true,表示从2到1000的所有数字都是候选素数。然后从2开始遍历这个数组,对于每个素数,将其倍数标记为非素数。
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_NUM 1001
void printPrimes(int limit) {
bool isPrime[MAX_NUM];
for (int i = 2; i <= limit; i++) {
isPrime[i] = true;
}
for (int p = 2; p * p <= limit; p++) {
if (isPrime[p]) {
// Mark multiples of p as non-prime
for (int i = p * p; i <= limit; i += p)
isPrime[i] = false;
}
}
printf("素数在2到1000之间的有:");
for (int p = 2; p <= limit; p++) {
if (isPrime[p])
printf("%d ", p);
}
}
int main() {
int limit = 1000;
printPrimes(limit);
return 0;
}
```
运行上述代码,将会打印出2到1000之间的所有素数。
阅读全文