7-126 显示指定范围内的素数
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
输入格式:
输入一个非0的整数。
输出格式:
素数的输出格式为每个素数5列宽、右对齐、每行显示15个。
输入样例:
100输出样例:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97输入样例:
568输出样例:
OVERFLOW输入样例:
1输出样例:
NO
#include <stdio.h>
int main() {
int m, count = 1, flag = 1, arr[100];
arr[0] = 2;
scanf("%d", &m);
if (m <= 2) {
printf("NO");
return 0;
}
for (int i = 3; i < m; ++i) {
flag = 1;
for (int j = 2; j < i; ++j) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag && count < 100) {
arr[count++] = i;
} else if (flag) {
printf("OVERFLOW");
return 0;
}
}
for (int i = 0; i < count; ++i) {
if ((i + 1) % 15 == 0) {
printf("%5d\n", arr[i]);
} else {
printf("%5d", arr[i]);
}
}
return 0;
}
思路
- 把是素数的全部存入数组,然后判断是否超过100再决定输出OVERFLOW还是输出素数,调整输出格式就行了
本文介绍了一个C语言程序,用于找出指定范围内所有的素数,并按特定格式输出。如果素数数量超过100,则输出OVERFLOW;若输入小于等于2,则输出NO。程序包括完整的源代码及运行逻辑。

903

被折叠的 条评论
为什么被折叠?



