Java教程

欧拉完全数和梅森素数的证明

本文主要是介绍欧拉完全数和梅森素数的证明,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

alt
alt

本来是遍历到根号n,后来想改进到再去除2的倍数
alt

验证 6因子 1,6 2,3

那么12因子 (1,12 2,6) (2,6 4,3) 这样因子和是3倍

但是12因子 1,12 2,6 3,4 那么2,6重复了

结论错误

为什么?
猜测可能是因为6是2的倍数所以会再翻倍时导致因子有重复

a不是2的倍数

a因子 1,a x1,y1 x2,y2

2a因子 (1,2a 2,a) (x1,2y1 and 2x1,y1)…

2a因子和是a的3倍,但是没什么用因为得不到4a因子和是2a三倍

顺着欧拉思路是不是需要a为质数
alt

所以对素数p $ 2^n*p 的因子和= (p+1)(2^{n+1}-1) $

当 2 n ∗ p 2^n*p 2n∗p是完全数=> $2^np= (p+1)(2{n+1}-1)-2np $

即$ (2^{n+1})*p= (p+1)(2^{n+1}-1) $

a/b a整除b (a,b)=1 a,b最大公约数为1,ab互质

p + 1 / ( 2 n + 1 ) ∗ p , 且 ( p , p + 1 ) = 1 p+1/(2^{n+1})*p,且 (p,p+1)=1 p+1/(2n+1)∗p,且(p,p+1)=1 =>

p + 1 / 2 n + 1 ∗ ∗ ∗ ∗ ∗ p+1/2^{n+1} ***** p+1/2n+1∗∗∗∗∗

设 p = 2 k − t ( t < 2 k − 1 ) 显 然 2 n + 1 没 有 奇 因 子 = > 2 k − t + 1 没 有 奇 因 子 = > t = 1 = > p = 2 k − 1 设 p= 2^k-t(t<2^{k-1})显然2^{n+1}没有奇因子=>2^k-t+1 没有奇因子=>t=1=>p= 2^k-1 设p=2k−t(t<2k−1)显然2n+1没有奇因子=>2k−t+1没有奇因子=>t=1=>p=2k−1

=> ( 2 n + 1 ) ∗ ( 2 k − 1 ) = ( 2 k ) ( 2 n + 1 − 1 ) (2^{n+1})*(2^k-1)=(2^k)(2^{n+1}-1) (2n+1)∗(2k−1)=(2k)(2n+1−1)

=>n=k-1结合$ 2^n*p 是完全数 $

有 存 在 k 当 2 k − 1 = p 为 质 数 时 2 n ∗ p 为 完 全 数 有存在k 当2^k-1=p 为质数时 2^n*p为完全数 有存在k当2k−1=p为质数时2n∗p为完全数

$也即 (2k-1)*(2{k-1})为完全数 $

对比欧拉结论

如 果 p 是 质 数 , 且 2 p − 1 也 是 质 数 , ( 2 p − 1 ) ∗ 2 ( p − 1 ) 便 是 一 个 完 全 数 。 如果p是质数,且2^p-1也是质数,(2^p-1)*2^{(p-1)}便是一个完全数。 如果p是质数,且2p−1也是质数,(2p−1)∗2(p−1)便是一个完全数。

下 证 若 要 2 p − 1 也 是 质 数 , p 需 为 质 数 下证若要2^p-1也是质数,p需为质数 下证若要2p−1也是质数,p需为质数

alt

这篇关于欧拉完全数和梅森素数的证明的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!