素数判定
题目描述
输入一个正整数n,判断n是否是素数,若n是素数,输出”Yes”,否则输出”No”。
输入
输入一个正整数n(n<=1000)
输出
如果n是素数输出"Yes",否则输出"No"。输出占一行。
样例输入 Copy
2
样例输出 Copy
Yes
#include<stdio.h>
#include<math.h>
int main()
{ //素数: 除了1和本身 不能被其它数整除
int i,k,m,find;
scanf("%d",&m);
k=(int)sqrt(m);//缩小范围,
find=0;//0表示没有被整除,1表示m被某个数整除
for(i=2;i<=k;i++)//缩小范围,对M求平方根了
{ //如当m为9时 k就为3了,2~3之间中 有被9整除的 说明m不是素数
if(m%i==0)//只要有一个i能整除m 就可以说明m不是素数
{
find=1;//find为1时 说明不是素数
break;
}
}
if(find==1||m==1)
printf("No\n");
else
printf("Yes\n");
return 0;
}
C语言书中有更加详细的讲解 可以去看一下,我也是个小白,提供自己的一点思路,