用c语言分行输出指定范围内所有的素数(每行 5 个数)。 输入格式: 输入整数 m 和 n(0<m<n<65535)。 输出格式: 每行输出 5 个素数,每个数占用 8 格。若 m 和 n 不满足 0<m<n<65535,则输出 Error
时间: 2024-02-24 09:59:17 浏览: 41
好的,我已经理解了您的要求。以下是 C 语言实现分行输出指定范围内素数的代码:
```c
#include <stdio.h>
int is_prime(int num) {
if (num < 2) {
return 0;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n;
scanf("%d%d", &m, &n);
if (m <= 0 || n >= 65535 || m >= n) {
printf("Error\n");
return 0;
}
int count = 0;
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
printf("%8d", i);
count++;
if (count % 5 == 0) {
printf("\n");
}
}
}
if (count % 5 != 0) {
printf("\n");
}
return 0;
}
```
首先,我们定义了一个 `is_prime` 函数来判断一个数是否为素数。在 `main` 函数中,我们读入输入的范围 `m` 和 `n`,并进行错误检查。如果范围不合法,就输出 "Error" 并结束程序。
接着,我们遍历范围内的每一个数,如果它是素数,就输出该数,并把计数器 `count` 加一。如果已经输出了 5 个素数,就换行。最后,如果最后一行不足 5 个素数,也要换行。
希望这个代码可以解决您的问题!