编制一个 C 语言程序,输出 1~1000 以内所有的素数(素数只能被 1 和 自身整除),每行输出 8 个素数
时间: 2024-12-01 18:29:24 浏览: 17
编写一个C语言程序来输出1到1000之间的所有素数,并将它们每行输出8个,你可以按照以下步骤进行:
首先,我们需要编写一个用于判断是否为素数的函数,然后遍历1到1000的数字,对每个数进行判断,符合条件则打印出来。考虑到效率,我们可以只检查小于等于该数平方根的因数,因为大于这个范围的因数不会有共同因子。
```c
#include <stdio.h>
#include <math.h>
// 判断是否为素数的辅助函数
int is_prime(int num) {
if (num <= 1) {
return 0;
}
if (num == 2 || num == 3) {
return 1;
}
if (num % 2 == 0 || num % 3 == 0) {
return 0;
}
int i = 5;
while(i * i <= num) {
if (num % i == 0 || num % (i + 2) == 0) {
return 0;
}
i += 6; // 跳过合适数
}
return 1;
}
int main() {
int count = 0;
int current_num = 2;
while(count < 8 && current_num <= 1000) { // 每行输出8个素数
if(is_prime(current_num)) {
printf("%d ", current_num);
++count;
}
current_num++;
}
// 如果当前数还没超过1000并且还有未输出的素数
while(current_num <= 1000 && count < 8) {
if(is_prime(current_num)) {
printf("%d\n", current_num); // 当一行满了再换行
count++;
}
current_num++;
}
return 0;
}
```
运行此程序会逐行输出1到1000之间每行8个素数,注意最后一个数可能不会恰好是8个,如果不够8个,会在新的一行单独输出。
阅读全文