L1-028 判断素数 (10分)提交链接
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2^31的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
输入样例:
2
11
111
输出样例:
Yes
No
注意:对于这题,下面的判断素数函数会超时,
应该是每次的i*i会花费不少的时间
int judge(int n)
{
if(n==1)
return 0;
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
改写成这样便不会超时
int judge(int n)
{
if(n==1)
return 0;
int k=sqrt(n);
for(int i=2;i<=k;i++)
if(n%i==0)
return 0;
return 1;
}