c语言素数判断为什么只循环到平方根就行

 我来答
Tidus_forever
推荐于2018-03-31 · TA获得超过4399个赞
知道大有可为答主
回答量:2782
采纳率:100%
帮助的人:1859万
展开全部
因为一个数的因数都是成对的,比如
12=1 *12
=2*6
=3*4
=4*3
=6*2
=12*1
比如25
25=1*25
=5*5
=25*1
如果到了他的根号,还没有一个因子出现,那么后半部分也不会有因子出现了
松甜恬0Je4ba
2011-09-17 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3468万
展开全部
素数是 除1和本身外,没有其他因子。
假设 这个数X的 平方根为 a。
证明,比a大的比本身X小的没有比较的必要。
假设 b >a ,且是X的因子,那么一定存在一个c使 c*b =x,且 c<a;
(因为 a*a = X b>a,若c>a,则 b*c>X)
那么判断到c的时候,就知道x不是素数了,所以没有必要往下走了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自九十渡怜香惜玉&#x00A0;的大海
2011-09-17 · TA获得超过200个赞
知道答主
回答量:119
采纳率:0%
帮助的人:62.8万
展开全部
http://zhidao.baidu.com/question/320326674.html
这儿有你想要的回答
因为如果n可以被一个数整除,那么其中一个数一定小于等于n开方,另一个大于等于n的开方,所以只需要算到这儿,到后面就是多余的了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
strionws
2011-09-17 · TA获得超过1644个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:378万
展开全部
一个数,不可能被比自己一半大的数整除。
简单来说,4x4=16,16不可能被比8大的数整除。
这是数学规律,可以减少一半的循环次数,大大提高程序效率
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
piaoyi31
2011-09-17 · TA获得超过143个赞
知道答主
回答量:474
采纳率:0%
帮助的人:274万
展开全部
这个循环只会在有数可以把n整除的时候break,中止掉。你的判断是从2开始的这种判断素数的方法效率太低了点,你去看看一些基础教C语言的书里讲判断素数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式