永发信息网

C语言问题求助下,不懂意思了

答案:4  悬赏:20  手机版
解决时间 2021-05-25 17:21
#include “math.h” main ( ) { int m,i,k; scanf(“%d”,&m); k=sqrt(m); for(i=2;i<=k;i++) if(m %i==0) break; if(i>=k+1) printf(“%d is a prime number\n”,m); else printf(“%d is not a prime number\n”,m); } 这中间的 if(i>=k+1)有什么存在意义
最佳答案

i>=k+1也就是for语句执行到最后,就是从2到k没找到可以被整除m的数,所以m就是素数

全部回答
这是一个判断一个数是否为素数的C程序,这里的 if(i>=k+1),是判断 i 的值是否从2一直加到k+1,根据上面if(m %i==0) break;如果 i 正好是m的约数,那 i 出来的值肯定<=k,则可判断出m必有一个约数是 i,从而得出m不是素数, if(i>=k+1)只是在这里做一个检验,来判断是否将所有的数都验证了一遍,其实也可以改成if(i=k+1),因为如果m是素数,i 最后的值就是k+1

if(i>=k+1)这句话是用来判断m是否为素数,这条语句是在for语句的外面哦。

#include “math.h”

main ( )

{

int m,i,k;

scanf(“%d”,&m);

k=sqrt(m);

for(i=2;i<=k;i++)

if(m %i==0)

break;

if(i>=k+1)

printf(“%d is a prime number\n”,m);

else

printf(“%d is not a prime number\n”,m);

}

在for循环里用到一条语句:if(m%i==0) break;

若执行了break后,i的值一定是小于等于k的,

反之,i的值若大于k( i>=k+1) ,说明没有执行过break语句。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在有什么好看的小说啊???
有什么好看的新喜剧电影推荐几部?
求一部豆花文
按要求写单词1、same(反义词)__________2、
潜江市潜江武汉久久鸭脖这个地址怎么能查询到
怎样清洗手表机芯部件?
自由幻想图标怎么灭了。
我刨腹产孩子四个多月来的月经可是下个月没和
溆浦县怀化千年舟板材(溆浦专卖店)这个地址怎
最近比较好听德又什么、歌?
爱国的朗诵诗歌大全,诗朗诵古诗词李白将进酒
云龙绣品在哪里啊,我有事要去这个地方
为什么进有的QQ空间要上QQ号,而有的空间不用
海林市牡丹江金苹果主题量贩式KTV怎么去啊,
整改报告怎么写的?我们是加工贸易企业,海关下
推荐资讯
在哪里买那种变身器就是男变女的那种,很逼真
不要说女人现实语录,不相信女人的经典语录 10
CF送东西,现在还送吗?
新安县洛阳鼎信御安药业连锁有限公司新安县石
双峰县娄底辉煌灯饰地址在什么地方,想今天过
学校要购2000元的图书,包括名著和辞典,名著每
神州租车泉州美食街店我想知道这个在什么地方
饥荒联机版饺子怎么做,饥荒联机版怎么让猪钓
如何把公分换算成英寸(美制)?
若x=(1-t)/(1+t) y=(2-3t)/(3-2t),用x的代数
我想知道锦州哪里有卖美瞳的?什么颜色、什么
CS A 门 小道 扔BUG 以前会现在不会了呢??
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?