输入一个输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:
正整数 m,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1 和自身整除的正整数,1 不是素数,2 是素数)。
#include <stdio.h>
int main(){
int repeat,i;
scanf("%d",&repeat);
for(i = 0;i <repeat;i++)
{
int m,k;
scanf("%d",&m);
if(m ==1)
printf("NO\n");
if(m==2)
printf("YES\n");
for(k=2;k<m;k++) //2-(m-1)中进行循环
if(m % k==0)
{
break;//一个循环中,跳出有两种可能:1、符合if的条件,break.此时k!=m 2、不满足k<m的条件而停止循环,此时j = m.利用循环的性质,用if进行判断,即可确定m是否为素数。
}if(k==m)
{
printf("YES\n");
}
else
{
printf("NO\n")
}}
return 0;
}
判断一个数(n)是素数时,即它只能被1和自身整除。那么反过来,一个数不为素数时,会被2-n-1的其中的数整除。
所以,利用这个性质,写出代码,如上解析。一个循环中,跳出有两种可能:1、符合if的条件,break.此时k!=m 2、不满足k<m的条件而停止循环,此时j = m.利用循环的性质,用if进行判断,即可确定m是否为素数。
注意点:1不是素数,2在进行判断的时候,符合if的条件,但2是素数,所以要在循环之前用if进行判断1和2.