这道c语言题,小弟有点不太理解,哪位高手给解读一下啊!!!

下面的函数是判断m是否为素数,若是,则返回1,否则返回0#include<math.h>intisprime(intm){inti,k;k=sqrt(m);for(i=2... 下面的函数是判断m是否为素数,若是,则返回1,否则返回0
#include <math.h>
int isprime(int m)
{
int i,k;
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1) return (1);
else return (0);

(m%i==0) 和 (i>=k+1)这两个条件是什么意思啊???
展开
 我来答
xyz347
2009-12-06 · TA获得超过859个赞
知道小有建树答主
回答量:1886
采纳率:100%
帮助的人:1627万
展开全部
m%i==0表示m能被i整除,m不是素数
i>=k+1表示上面的for循环没有进入m%i==0这个条件,也即没有数能整除m,是素数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lim
2009-12-06 · 知道合伙人软件行家
Lim
知道合伙人软件行家
采纳数:152 获赞数:1014
资深研发工程师,敏捷教练ScrumMaster

向TA提问 私信TA
展开全部
质数定义:除了1与自身,不能整除任何数。

(m%i==0)不能整除比自己小的数

i>=k+1 ;说明上面那个for循环一直执行了k次都没有break;说明m是质数,所以返回1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wql05
2009-12-06 · TA获得超过163个赞
知道答主
回答量:113
采纳率:100%
帮助的人:43.7万
展开全部
(m%i==0) 意味着m能被大于2小于k+1的数整除,(i>=k+1)意味着m不能被小于或等于k的数整除。例如:m=47,k=sqrt(m)=6,i=7,所以i>=k+1,因此47是素数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式