证明:
不妨假设n不为素数,则有:n = a*b
n = sqrt(n)*sqrt(n)
假设 a>sqrt(n) 且 b>sqrt(n)
则可推出: a*b > n 这与前面的已知矛盾
故a、b之中必然有一个小于或等于sqrt(n)
又由n = a*b可知,若n能整除a、b中的任何一个就一定能整除另外的一个,所以只要除到sqrt(n)就可以判断
n是否为素数了
证毕
感悟:这个方法比起从1~n的每个数都除一遍快多了,数学方法就是牛!
本文介绍了一种快速判断素数的方法,通过证明当n不是素数时,其必定存在小于等于sqrt(n)的因子,从而避免了从1到n逐个除法检查的过程,大大提升了判断效率。
证明:
不妨假设n不为素数,则有:n = a*b
n = sqrt(n)*sqrt(n)
假设 a>sqrt(n) 且 b>sqrt(n)
则可推出: a*b > n 这与前面的已知矛盾
故a、b之中必然有一个小于或等于sqrt(n)
又由n = a*b可知,若n能整除a、b中的任何一个就一定能整除另外的一个,所以只要除到sqrt(n)就可以判断
n是否为素数了
证毕
感悟:这个方法比起从1~n的每个数都除一遍快多了,数学方法就是牛!
4673
1132

被折叠的 条评论
为什么被折叠?