#include <stdio.h>
int ifis(int x)
{
int i=0;
int a=0;
for(i=2;i<x;i++)
{
if(x%i==0)
{
a++;
}
}
return a;
}
int main()
{
int input=0;
printf("请输入一个数>:\n");
scanf("%d",&input);
int ret=ifis(input);
if(ret==0)
{
printf("这个数是素数\n");
}
else
{
printf("这个数不是素数\n");
}
return 0;
}
一开始我用
if(x%i==0)
{
return 1;
}
然后用
if(ret==1)
{
printf("这个数不是素数");
}
来判断这个数是不是素数,这是一种错误的写法,因为他这个只能执行一次循环就回去判断了,并不能得到真正的结果,所以应该用a++来判断能不能被2到x之间的数整除,如果a始终为0,说明不能被整除,说明是素数。