我想要在排除0,1的情况下,用便利法判断是否为素数。 代码在输入2,3,4时 出错,这个错在哪里? 想1个小时了
#include <stdio.h>
int main ( ) //int argc; const char *argv[]
{//素数:只能被1和自身整除
int i,x;
printf("输入一个数字,我告诉你它是否为素数: ");
scanf("%d",&x);
printf(" \n ");
printf(" 输入-1结束程序。 ");
while (x!=-1)//输入-1结束程序
{
int isPrime=0 ;//1代表是素数。
if (x>1)
{
for(i=2;i<x-1;i++) {
if(x%i==0) {
isPrime = 0;
continue; //忘记跳出了,耽误半小时
}else{
isPrime=1;
}
}
/* code */
}else{
goto lol;
}
lol:
if(isPrime==1){
printf("是素数\n");
} else {
printf("不是素数\n");
}
printf("输入一个数字,我告诉你它是否为素数: ");
scanf("%d",&x);
printf(" \n ");
printf(" 输入-1结束程序。 ");
/* code */
}
return 0;
}
结果如下: