输入整数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
代码
#include<stdio.h>
int main()
{
int prime(int p);
int m,i,a[100],count=0,count2=0;
scanf("%d",&m);
if(m<=2)
printf("NO\n");
else
{
for(i=2;i<m;i++)
{
if(prime(i))
count++;
}
if(count>100)
printf("OVERFLOW\n");
else
{
for(int j=2;j<m;j++)
{
if(prime(j))
{
count2++;
if(count2%15==0)
printf("%5d\n",j);
else
printf("%5d",j);
}
}
}
}
return 0;
}
int prime(int p)
{
int flag=1,i;
if(p==1)
return 0;
else
{
for(i=2;i<p;i++)
{
if(p%i==0)
{
flag=0;
break;
}
}
}
return flag;
}