用c语言分行输出指定范围内所有的素数(每行 5 个数)。 输入格式: 输入整数 m 和 n(0<m<n<65535)。 输出格式: 每行输出 5 个素数,每个数占用 8 格。若 m 和 n 不满足 0<m<n<65535,则输出 Error
时间: 2024-02-24 15:59:50 浏览: 137
好的,我会为您解答这个问题。
以下是实现该功能的 C 语言代码:
```c
#include <stdio.h>
int isPrime(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 <= 0 || m >= n || n > 65534) { // 判断输入是否合法
printf("Error\n");
return 0;
}
int cnt = 0; // 计数器,每输出 5 个素数换行
for (int i = m; i <= n; i++) {
if (isPrime(i)) {
printf("%8d", i);
cnt++;
if (cnt % 5 == 0) printf("\n");
}
}
if (cnt % 5 != 0) printf("\n"); // 如果最后一行没有输出满 5 个数,也要换行
return 0;
}
```
代码中的 `isPrime` 函数用于判断一个数是否为素数。主函数中,首先读入输入的两个整数 `m` 和 `n`。然后判断输入是否合法,如果不合法就输出 `Error` 并结束程序。接着从 `m` 到 `n` 遍历每个数,如果是素数就输出并计数器加一,每输出 5 个素数就换行。最后如果最后一行没有输出满 5 个数,也要换行。
希望能够帮到您!
阅读全文