描述
给定一个整数m,找出小于m的最大的10个素数。
输入
一个正整数m( 30 \leq m \leq 2000030≤m≤20000 )。
输出
在一行中按递减顺序输出10个满足条件的素数,相互之间用1个空格隔开。
输入样例 1
229
输出样例 1
227 223 211 199 197 193 191 181 179 173
#include <stdio.h>
#include <math.h>
int f(int a)
{ int i;
for(i=2;i<=sqrt(a);i++)
{
if(a%i==0)
break;
}
if(i>sqrt(a))
return 1;
else return 0;
}
int main(int argc,char *argv[])
{
int m,k=0,i;
scanf("%d",&m);
for(i=m-1;i>=2;i--)
{
if(f(i))
{ if(k!=0)
printf(" ");
printf("%d",i);
k++;
}
if(k==10)
break;
}
}
写了个函数判断是否是素数,不喜欢写得太集中却没有注释,至于我为什么不写注释,因为我懒。