判断数是否是素数,为什么除到其平方根就可以了

2021-02-23 22:57:37 字数 3885 阅读 7092

1楼:咎萝丑山彤

因为如果一个数不是素数是合数,

那么一定可以由两个自然数相乘得到,

其中一个大于或等于它的平方根,一个小于或等于它的平方根。并且成对出现。

2楼:匿名用户

因为如果它不是质数,那么它一定可以表示成两个数(除了1和它本身)相乘,这两个数必然有一个小于等于它的平方根。只要找到小于或等于的那个就行了

判断一个数是否是素数,为什么除到其平方根就可以了?

3楼:暴走少女

因为如果一个数不是素数是合数, 那么一定可以由两个自然数相乘得到, 其中一个大于或等于它的平方根,一个小于或等于它的平方根,并且成对出现。

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

扩展资料:

一、相关性质

质数的个数是无穷的。欧几里得的《几何原本》中有一个经典的证明。它使用了证明常用的方法:

反证法。具体证明如下:假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设n=p1×p2×……×pn,那么,n+1是素数或者不是素数。

如果n+1为素数,则n+1要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。

1、如果为合数,因为任何一个合数都可以分解为几个素数的积;而n和n+1的最大公约数是1,所以不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。

因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。所以原先的假设不成立。也就是说,素数有无穷多个。

2、其他数学家给出了一些不同的证明。欧拉利用黎曼函数证明了全部素数的倒数之和是发散的,恩斯特·库默的证明更为简洁,哈里·弗斯滕伯格则用拓扑学加以证明。

二、数目计算

1、在一个大于1的数a和它的2倍之间(即区间(a, 2a]中)必存在至少一个素数。

2、存在任意长度的素数等差数列。

3、一个偶数可以写成两个合数之和,其中每一个合数都最多只有9个质因数。(挪威数学家布朗,1920年)

4、一个偶数必定可以写成一个质数加上一个合成数,其中合数的因子个数有上界。(瑞尼,1948年)

5、一个偶数必定可以写成一个质数加上一个最多由5个因子所组成的合成数。后来,有人简称这结果为 (1 + 5)(中国潘承洞,1968年)

素数判断问题:为什么从2开始到该整数的平方根

4楼:匿名用户

判断一抄个数是否素数,只需袭判断它是否有非bai1,非本身的正因子。du

一般算法都是从

zhi2开始判断,dao设该数是n,假如n有大于 根号n 的因子,那么它的另一个因子必小于 根号n,那么计算机运算时查到这个因子时就可判断它不是素数,因此只需到平方根,而不必查到 n-1

5楼:匿名用户

因为如果整数m有一个比它的平方根m^(1/2)还要大的因数的话,即m=k1*k2,其中,k1>=m^(1/2)+1,则其另一个因回数k2<=m^(1/2).因此,整数答m的因数(如果有的话)只需考察到m的平方根即可。

6楼:

对任意合数n,根据定义可以设n=pq(p<=q)则p<=根号n从而若n>1且不是素数,则它的最小素因子一专定不超过p,从而不超过根属号n。

由此得上面的算法,即只需要检验正整数的最小素因子即可。

希望对你有所帮助!

求质数为什么只除到它的平方根就可以了

7楼:匿名用户

因为如果一个数不是素数是合数,那么一定可以由两个自然数相乘得到。

其中一个大于或等于它的平方根,一个小于或等于它的平方根,并且成对出现。

任意数m=a*b,设a>=b

m=a*b>=b^2

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

8楼:雾月の沉默

http://zhidao.baidu.***/question/320326674.html

这儿有你想要的bai回答

因为如果n可以被du一个zhi数整除,那么其中一个数一定小于等dao于n开方,

内另一个大于等于n的开方,所以容只需要算到这儿,到后面就是多余的了

9楼:倒霉熊

素数是抄

除1和本身

外,没有袭其他因子。

假设 这个数baix的 平方根

du为 a。

证明,比a大的比本身zhix小的dao没有比较的必要。

假设 b >a ,且是x的因子,那么一定存在一个c使 c*b =x,且 ca,若c>a,则 b*c>x)

那么判断到c的时候,就知道x不是素数了,所以没有必要往下走了。

10楼:

因为一个数的因数都抄

是成对的,比如

12=1 *12

=2*6

=3*4

=4*3

=6*2

=12*1

比如25

25=1*25

=5*5

=25*1

如果到了他的根号,还没有一个因子出现,那么后半部分也不会有因子出现了

11楼:匿名用户

一个数,不可能被比自己一半大的数整除。

简单来说,4x4=16,16不可能被比8大的数整除。

这是数学规律,可以减少一半的循环次数,大大提高程序效率

12楼:匿名用户

这个循环只会在有数可以把n整除的时候break,中止掉。你的判断是从2开始的这种判断素数的方法效率太低了点,你去看看一些基础教c语言的书里讲判断素数

为什么求素数的时候到那个数的平方根就可以了

13楼:匿名用户

因为假设数m=p*q,且p≤q则m=p*q≥p*p即p≤√m所以m必有一个小于或等于其平方根的因数,那么验证素数时就只需要验证到其平方根就可以

14楼:匿名用户

如果它不是质数,那么它应该可以表示成两个非1非自身的数相乘。

而这两个数,必然有一个大于平方根一个小于平方根,或者两个都等于平方根。

15楼:拔到最高点

证明过程如下:

假设当前素数为c,它的两个因数分别为x,y;

那么,必回然其中一个因数小答于等于另外一个,我们假设x<=y(y<=x也同理,因此只需假设一种情况即可)。

进一步,既然x<=y, 那么,存在一个数,使得x<=m,同时满足y>=m。

我们知道x*y=c,那么当x增大时,y必然变小,那么,就可以知道当x无限趋近于m时,y也无限趋近于m,最终的结果就是x=m,同时y=m,那么m^2=c,即x=y=√c;那么就证明了x的取值范围是1<=x<=√c

素数判断问题:“为什么从2开始到该整数的平方根”。

16楼:

#include

voidmain()

假设一个数不是素数的话,那么它就是合数,即意味着这个数可以由两个版自然数相权乘得到,

其中一个大于或等于它的平方根,另一个小于或等于它的平方根。并且成对出现。因此,判断一个数是否为素数,只需判断从2开始到该整数的平方根范围内是否有整数能整除该数,有则为合数,无则为素数。

17楼:己优翁忆雪

判断一个数是

否素抄数,只袭需判断它是否有非1,非本bai身的正因子du。一般算法都是从2开始判zhi断,设该数是n,假如daon有大于根号n的因子,那么它的另一个因子必小于

根号n,那么计算机运算时查到这个因子时就可判断它不是素数,因此只需到平方根,而不必查到n-1

怎样判断根号计算是否有意义,怎样判断带根号数号数是否有意义 根号3的平方是否有意义

1楼 匿名用户 根号内的数不能为负数,根号下负数无意义!! 只有根号 3 无意义! 不懂可追问,满意请采纳 2楼 匿名用户 a a》 0 ,也就是说被开方数a是非负数,即a》0 你不用管根号外面,只用看根号里的部分,只要使其大于等于零,那么根式就有意义了。 所以 3,3是正数,所以有意义 3 ,被开...

假的翡翠是用哪些原料做成的?应该怎么做啊!谢谢啊

1楼 翡翠鉴别零售 翡翠b货c货或b c货,通常也被叫做假货,这料是用次品翡翠原料经酸洗等工艺做成的,翡翠原有的结构被破坏, 还有些冒充翡翠的,通常有马来玉,冬凌玉,韩玉,水沫子等等。 2楼 匿名用户 玻璃 大理石 等一些杂质很多的石质材料 好一点的就容 脏一点的翡翠原料 酸洗 注胶 用激光打色 一...

java中判断两个数组是否相等的方法是什么

1楼 slim丶风 还是用arrays equals吧 是比较地址 equals主要用来单个比较 下面是 arrays equals方法的源码public static boolean equals long a long a2 java中判断两个数组是否相等的方法 2楼 匿名用户 两个方法,第一个...