c语言输出前30个素数,每行输出6个
时间: 2024-10-14 10:05:38 浏览: 42
在C语言中,我们通常采用“埃拉托斯特尼筛法”来找出一定范围内的素数。以下是利用这种方法实现输出前30个素数,每行输出6个的代码示例:
```c
#include <stdio.h>
#define MAX_PRIMES 30 // 确定要找的素数个数
#define LIMIT 35 // 找出30个素数的最大值,因为小于等于MAX_PRIMES的最大质数是31
void print_primes(int limit) {
int primes[MAX_PRIMES], count = 0;
// 初始化数组,假设所有大于1的数都是素数
for (int i = 2; i <= limit; i++) {
if (count == MAX_PRIMES) break;
primes[count++] = i;
// 对于每个找到的素数,将其倍数标记为非素数
for (int j = i * i; j <= limit; j += i) {
if (primes[count - 1] != j && j > 1) {
primes[count] = 0; // 如果j还没被标记,设置为0表示不是素数
break;
}
}
}
// 只输出素数
for (int i = 0; i < MAX_PRIMES && primes[i]; i++) {
if (i % 6 == 0) {
printf("%d ", primes[i]); // 每6个素数换行一次
} else {
printf("%d", primes[i]);
}
if ((i + 1) % 6 == 0 || i == MAX_PRIMES - 1) {
printf("\n"); // 当达到一行结束或最后一个素数时换行
}
}
}
int main() {
print_primes(LIMIT);
return 0;
}
```
这段代码首先通过埃拉托斯特尼筛选法找出前`LIMIT`个素数,然后按每6个素数换行的方式输出。
阅读全文