|
[这个贴子最后由ysr在 2011/10/27 02:33pm 第 3 次编辑]
[watermark]快速分解因数的1个类型:
准备知识:记住1*9,2*8,3*7,4*6,5*5依次为9,18,21,24,25,
1*2,2*3,3*4,4*5,……依次为2,6,12,20,30,42,56,72,90,110,132,……
则如下数,末尾2位数为09,18,……,其余数为2,6,12,20,……,可快速分解:如,
9024=94*96,(右边两因数个位数字的和为10,十位数字相同,为n(n+1)中的n)
7218=82*88,(当然,没完全分解,还可继续分解)
7209=81*89,(反过来,逆向运算可快速乘法)
1225=35*35,
2024=44*46,
11024=104*106,
13209=111*119,
……
证明:1种法是将因数分别裂解为两整数的和,用乘法的交换率结合率,推出有规律的结果,便于计算)
81*89=(80+1)*(80+9)=80*80+80*10+9=8*9*100+9,
7218=8*9*100+18,
……(也可用字母推导)证毕
由于两个因数的差很小,还可以用下面的方法分解:
1),直接开方,如625的方根为25,625=25*25,
1225的方根为35,1225=35*35,
2),利用平方差公式a^2+b^2=(a+b)(a-b),设该数为M,则a为M的方根的整数部分加1,b^2=a^2- M,
如分解13216,
a=√ M+1=114+1=115,b^2=115^2-13216=13225-13216=9,b=3,
则13216=(115-3)*(115+3)=112*118,
分解11024,
a=√ M+1=104+1=105,b^2=11025-11024=1,,b=1,
则11024=104*106,
当M为奇数还可用下面的方法,把M分两种类型4X1+1,4X2+3,其中X1=(n+x)(n+x+1)-x^2,X2=(n+x+1)^2-x^2-x-1,
由于两个因数的差很小,可直接求出n+x,x及n的值,从而分解因数:4X1+1=(2n+1)(2n+4x+1),4X2+3=(2n+1)(2n+4x+3),
当x>>n时,只要求出x/n的比值,就可求出x和n,从而分解因数,两因数位数相同的话,x/n的整数部分在1和4之间,只要知道x/n的比较接近的值,不必等于实际,就可根据商与因子的变化关系,列方称求出x和n,是1元二次方称,用求根公式即可,
RSA公钥密码中用到两个位数相同的大素数的积做公开模数,其中x/n取5,或7,10就可,对于多因子的模数,关键找到x/n的值,越准确越好!先算出最小的1个素数因子,依次求出其他.
这样就可破解密码,懂概率的可以优化公式,使计算简便,速度更快!
我们的研究方法是,从特殊到一般,从特殊数据入手,研究计算方法和其中道理,发现证明一般规律,推广到一般数据,
如下可当智力游戏,感兴趣的可算1下,
快速分解因数:
7209=?
9009=?
9018=?
13209=?
11021=?
13218=?
13225=?
快速乘法:
95*95=?
114*116=?
99*91=?
88*82=?
83*87=?
104*106=?
112*118=?
[/watermark] |
|