c语言中如何求素数

c语言中如何求素数... c语言中如何求素数 展开
 我来答
百度网友e4c29a2ee
推荐于2017-09-11 · TA获得超过164个赞
知道答主
回答量:62
采纳率:0%
帮助的人:75.9万
展开全部
楼上的还可以具体一些,其实非常简单,如果一个数是素数,只要判断他是否能被2到这个数的开方之间的数整除就行了。
int flag=0;

if(m==2){ //先判断是不是2
flag=1;
}

else{
for(int i=2;i<=sqrt(m);i++){
flag=1;
if(m%i==0){ //不是素数
flag=0;
break;
}
}
}

return (flag==1)?m:-1; //判断是否为1,为1输出m,否则输出-1 ,-1表示不是素数

如果是求某个范围的素数,可以连续调用这个方法,上面是常规的方法,还有更好的方法自己去查一下。
佘彩革书艺
2019-07-22 · TA获得超过3758个赞
知道小有建树答主
回答量:3041
采纳率:34%
帮助的人:200万
展开全部
算到算数平方根,这样做是为了提高效率啊,如,求121是不是素数,你不用去用121除以2到120(这样会做119次除法计算,这样效率就低了)。。。你算到它的算数平方根还没有找到它的一个因数,这就可以说它是素数了,
这是有人在数学上证明过了的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
权皓隐牧
2020-01-03 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:31%
帮助的人:591万
展开全部
你想下假如对8取余8/2==4,5以后的数字能整除8吗,为了提高效率,只要到4就行了,其实你理解错了,哪是这一句是判断方法啊,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一万光年MEGn0
2011-05-21 · TA获得超过3712个赞
知道大有可为答主
回答量:4602
采纳率:67%
帮助的人:1064万
展开全部
for(i=2;i<m/2;i++)
{
if(m%i==0)
{
break;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式