C语言问题-准确得说是数学问题。

为什么只需要判断[2,m+2]区间上有无能被m整除的数即可判断m是否为素数。打错了,是m/2,不是m+2... 为什么只需要判断[2,m+2]区间上有无能被m整除的数即可判断m是否为素数。
打错了,是m/2,不是m+2
展开
环凡迩wT
2011-11-01 · 超过50用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:160万
展开全部
最简单的方法,用m和[2,m-1]之间所有的数都除一遍,如果没有可以整除的,那么m就是素数(这是素数的概念,很容易理解吧)。所以最多判断[2,m-1]区间内的数即可,lz提问的[2,m+2]这个区间明显大了,用m/(m+2)怎么都不能整除吧。。。根本不用判断。。。。
其实这个判断区间可以缩小为[2,√m],就是2到根号m的取整值。假设m如果不是素数,那么m可以分解成m=a*b。设a<√m<b;当我们发现m可以被a整除之后,m肯定可以被b整除;换言之,如果不存在a(a<√m)可以整出m,那么肯定不会出现一个大于√m的数而且可以整除m,所以√m之后的数就不用再判断了。。。。
如果觉得这个区间麻烦的话,简化成[2,m/2]也可以,理由同上。但lz给出的这个区间太大了。。。
不甜的糖ABC
2011-11-02 · 超过27用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:61.6万
展开全部
【2,m/2】 其实很简单的在于一个小环节,就是这个区间上两个极值(就是边界)乘积就是m.
素数的概念是除了一和他本身外不可以被其他数字整除的数,其实就是质数的概念。一个数字不能被2整除的话,那他也不能被m/2以上的数字整除 简单的举个例子,9不可以被2整除,那他也就一定不可以被4.5以上的整除了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朦胧雨0
2011-11-01
知道答主
回答量:65
采纳率:0%
帮助的人:35.3万
展开全部
是【2,m-1】吧。
还有是整除m,而不是被m整除!
素数即是只能被本身和1整除的数。
素数肯定是大于0。被1整除又不算。所以下限是2。
而m除以大于m的数肯定不可能是整数!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
575110159
2011-11-01
知道答主
回答量:10
采纳率:0%
帮助的人:7万
展开全部
判断m是不是素数的方式有很多种,用[2,m+2]作为除数只是其中的一种解决方式,
还可以用[2,√m]作为除数!素数和我们数学上的质数是一个概念!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式