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)怎么是什么意思。
没办法,老师不让用开根。菜鸟请教
{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才能判断