输入整数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
代码长度限制:16 KB
时间限制:400 ms
内存限制:64 MB
栈限制:8192 KB
具体代码:
#include<stdio.h>
int main(){
int m;
int arr[500];
int i,j;
int k=0;
scanf("%d",&m);
if(m<=2) printf("NO");
else{
for(i=2;i<m;i++){//所有大于1小于整数m的素数,没有等于m,这里有坑
int t=1;
for(j=2;j<i;j++){
if(i%j==0){
t=0;
break;}
}
if(t==1)
{ arr[k]=i;
k++;}
}
}
int count =0;
if(k>100) printf("OVERFLOW");
else {
for(i=0;i<k;i++){
printf("%5d",arr[i]);
count++;
if(count==15){
printf("\n");
count=0;
}
}
}
return 0;
}