C语言环境编程:找出5000-9999之间所有的素数
时间: 2024-10-13 20:17:31 浏览: 42
在C语言环境中编写程序来找出5000到9999之间的所有素数,可以采用“埃拉托斯特尼筛法”(Sieve of Eratosthenes)。这种方法是一种古老而高效的寻找范围内所有素数的算法。以下是简单的步骤和伪代码:
1. 创建一个布尔数组,长度为10000(包括边界),初始值全部设为true。数组下标代表数字,true表示该数可能是素数,false则表示不是。
2. 从2开始遍历这个数组,将2的所有倍数标记为非素数(即数组索引加2的位置设为false)。
3. 遍历结束后,数组中仍然为true的元素就是素数。从2开始,每隔一步(当前素数的下一个整数),跳过已知非素数的位置。
4. 循环直到遍历到大于9999的数。
下面是具体的C语言代码实现:
```c
#include <stdio.h>
#include <stdbool.h>
#define LIMIT 10000
bool isPrime[LIMIT + 1];
void sieveOfEratosthenes() {
int i, j;
for (i = 2; i * i <= LIMIT; i++) {
if (isPrime[i]) {
for (j = i * i; j <= LIMIT; j += i) {
isPrime[j] = false;
}
}
}
}
int main() {
// 初始化素数数组
for (int i = 0; i <= LIMIT; i++)
isPrime[i] = true;
sieveOfEratosthenes();
printf("Prime numbers between 5000 and 9999 are:\n");
for (int i = 5000; i <= 9999; i++) {
if (isPrime[i])
printf("%d ", i);
}
return 0;
}
```
运行此程序后,它会打印出5000到9999之间的所有素数。
阅读全文