本关任务:输出给定范围以内的所有素数。输出时,每行显示10个数。 程序从测试集中读取到数据范围m,求2~m之间所有素数。
时间: 2024-12-12 14:16:45 浏览: 15
要编写一个C语言程序,用于输出给定范围内(2到m)的所有素数,你可以按照以下步骤进行:
1. 定义一个函数,用于检查一个数字是否为素数。通常,素数是指大于1的自然数,除1和自身外没有其他因数。
```c
#include <stdbool.h> // 包含布尔类型定义
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) { // 只需检查到√n,因为大因子必定有较小的配对因子
if (num % i == 0) {
return false;
}
}
return true;
}
```
2. 主函数中,先读取数据范围m,然后使用循环遍历2到m之间的每一个整数,调用is_prime()函数判断是否为素数,并打印出来。每打印10个素数后换行。
```c
int main() {
int m;
printf("请输入数据范围m:");
scanf("%d", &m);
for (int i = 2; i <= m; ++i) { // 从2开始,因为1不是素数
if (is_prime(i)) {
printf("%d ", i); // 输出当前素数
if (--count_of_primes == 0) { // 当计数器达到9时换行并重置计数器
count_of_primes = 10;
printf("\n"); // 换行
} else {
count_of_primes--;
}
}
}
return 0;
}
```
这里假设我们还需要一个变量`count_of_primes`来跟踪已经输出的素数数量,当达到10时换行。
阅读全文