实现求出100~200之间的全部素数,每行输出8个数,每个数宽度为5列。 输入格式:无 输出格式:"%5d" "\n" 用C语言编程
时间: 2024-12-13 10:26:41 浏览: 11
求~间的全部素数-C语言程序总结
要使用C语言编写一个程序,实现100到200之间所有素数的输出,可以采用埃拉托斯特尼筛法。首先,我们创建一个二维数组表示1到200的所有数字,然后标记所有的非素数为0,最后只保留素数并按照指定格式打印出来。以下是相应的C代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define LIMIT 200
#define SIEVE_SIZE (LIMIT + 1)
bool is_prime[SIEVE_SIZE];
void sieve_of_eratosthenes() {
for (int i = 2; i * i <= LIMIT; ++i) {
if (is_prime[i]) {
for (int j = i * i; j <= LIMIT; j += i) {
is_prime[j] = false;
}
}
}
}
void print_primes(int start, int step) {
int count = 0;
for (int i = start; i <= LIMIT && count < 8; ++i, ++count) {
if (is_prime[i]) {
printf("%5d", i);
if ((count + 1) % 8 == 0 || i == LIMIT) { // 每8个数换行或到达200
printf("\n");
}
}
}
}
int main() {
sieve_of_eratosthenes();
print_primes(100, 1); // 从100开始,每次增加1,直到找到8个或超出范围
return 0;
}
```
这个程序首先通过sieve_of_eratosthenes函数使用埃拉托斯特尼筛法找出素数,然后在print_primes函数中按要求格式输出。
运行此程序,你会看到100到200之间的素数,每行显示8个,不足8个的部分会在下一行继续显示。
阅读全文