你的代码问题是:
#include<stdio.h>
#include<math.h>
void main()
{
int x,i;
printf("please input x :\n");
scanf("%d",&x);//因数x=3是无法判断的,即为:no,还有sqrt函数问题了,还要注意范围为int和type
if(x<=2)
printf("NO\n");
else
{
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0)
printf("NO\n");//这里少了一个break语句
else
printf("YES\n");
}
}
}
给你改的:
#include<stdio.h>
#include<math.h>
int main(void)
{
int x,i;
printf("please input x :\n");
scanf("%d",&x);
if(x<=2)
printf("NO\n");
else
{
for(i=2;i<=sqrt(x);i++)
if(x%i==0)
{
printf("NO\n");
break;
}
if(i>sqrt(x))
printf("YES\n");
}
}
我写的:
#include "stdio.h"
int fun(int n)
{
int a=2;
while (a<n)
if (!(n%a++)) break;
if (a==n) return 1;
return 0;
}
void main()
{
int n;
scanf("%d\n", &n);
if(fun(n))
printf("yes");
else
printf("no");
}