输入一个正整数m,判断它是否为素数。为什么i<=m/2,m/2是什么意思?

#include<stdio.h>intmain(void){inti,m;printf("Enterm:");scanf("%d",&m);for(i=2;i<=m/2... #include<stdio.h> int main(void) { int i,m; printf("Enter m:"); scanf("%d",&m); for(i=2;i<=m/2;i++) if(m%i==0) break; if(i>m/2&&m!=1) printf("%d is a prime number!\n",m); else printf("No!\n"); return 0; } 展开
 我来答
荣孟谯良弼
2019-03-10 · TA获得超过3802个赞
知道大有可为答主
回答量:3149
采纳率:33%
帮助的人:230万
展开全部
m/2是取整,比如m=1时,1/2就是0;m=2时,2/2就是1;3/2=1;4/2=2...
另外还有一个m%2.念m“摩”2,是取余数的意思。如1%2,结果是1;2%2,结果是0;3%2=1.
判断m是否是素数,只要判断i从小到大是否都不能把m整除就行了。
for(i=2;i<=m/2;i++)//之所以m/2,是为了减少计算,你也可以写成m。
if(m%i==0)//当可以整除的时候,跳出循环。这时跳出,就已经证明m(如果m!=1的话)不是素数了。
//除非是因为i==m/2时跳出,m才可能是素数。
break;
if(i>m/2&&m!=1)//跳出循环后,判断,此时的m若不是1,则m就是素数,i>m/2是为了判断i是否==m/2,当然,写“>”会比较好。
printf("%d
is
a
prime
number!\n",m);
else
printf("No!\n");
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式