C语言素数请教

来源:百度知道 编辑:UC知道 时间:2024/06/04 22:50:22
main()
{int n,r,i;
if (n<=2)break;
scanf("%d",&n);
for (i=2;i<=n-1;i++)
{r=n%i;
if(r==0)break;}
if(i>=n)
printf("yes\n");
else printf("no\n");
}

这是一段C语言判断输入的数是否质数的程序,可是当输入0,1,负数时,输出是yes。(0,1,负数非素数)
请教如何定义。谢谢~
对,那一小段是错误的。请教0,1,负数时,输出是yes的问题。

追加if(i>=n)怎么是什么意思。

没办法,老师不让用开根。菜鸟请教

还没输入n你就if (n<=2),一定是错的啦
算素数算到他的开方数即可,你算到n-1...残废算法

main()
{int n,r,i;

scanf("%d",&n);//先输入n
if (n<=2) printf("no\n");
else
{
for (i=2;i<=n-1;i++)
{r=n%i;
if(r==0)break;}
if(i>=n)
printf("yes\n");
else printf("no\n");
}
}

if (n<=2)break;
这句不对,应该是在输入n的下面把。。
应该先输入n才能判断