C语言求500~3000之间的全部素数,并以每行显示6个数字进行输出。
时间: 2024-10-17 09:07:44 浏览: 3
在C语言中,我们可以使用“Sieve of Eratosthenes”算法来找出一定范围内的所有素数。这个算法的基本思想是从2开始,将每个素数的倍数标记为合数,然后继续寻找下一个未被标记的数,直到达到范围的上限。以下是实现这一功能的代码示例:
```c
#include <stdio.h>
#include <stdbool.h>
void sieve_of_eratosthenes(int start, int end) {
bool is_prime[end + 1]; // 初始化数组,全设为true
for (int i = 2; i * i <= end; i++) {
if (is_prime[i]) { // 如果i是素数
for (int j = i * i; j <= end; j += i) {
is_prime[j] = false; // 标记j的倍数为合数
}
}
}
printf("素数列表(每行6个):\n");
for (int num = start; num <= end && num > 0; num++) {
if (is_prime[num]) {
printf("%d ", num);
if ((num % 6 == 0 || num == end) && num > 0) { // 每6个数换行
printf("\n");
}
}
}
}
int main() {
sieve_of_eratosthenes(500, 3000);
return 0;
}
```
当你运行这段代码时,它会在控制台打印出500到3000之间的所有素数,每行显示6个数字。
阅读全文