这道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)这两个条件是什么意思啊??? 展开
#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)这两个条件是什么意思啊??? 展开
3个回答
展开全部
m%i==0表示m能被i整除,m不是素数
i>=k+1表示上面的for循环没有进入m%i==0这个条件,也即没有数能整除m,是素数
i>=k+1表示上面的for循环没有进入m%i==0这个条件,也即没有数能整除m,是素数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
质数定义:除了1与自身,不能整除任何数。
(m%i==0)不能整除比自己小的数
i>=k+1 ;说明上面那个for循环一直执行了k次都没有break;说明m是质数,所以返回1.
(m%i==0)不能整除比自己小的数
i>=k+1 ;说明上面那个for循环一直执行了k次都没有break;说明m是质数,所以返回1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(m%i==0) 意味着m能被大于2小于k+1的数整除,(i>=k+1)意味着m不能被小于或等于k的数整除。例如:m=47,k=sqrt(m)=6,i=7,所以i>=k+1,因此47是素数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询