写在前面:
这篇博客是我在[◹]对 算术基本定理 的研究 中的一部分

整数分解废马方法
-
整数分解费马方法
整数分解费马方法与费马小定理无关
原理:
任何一个正整数n都能拆成n==2k*a的形式,其中a为一个奇数
我们在a上搞事情:
若a==c*d (c>d,且显然cd都是奇数)
那么让x==(c+d)/2,让y==(c-d)/2
这里是逻辑上的证明,并不是计算机要实现的内容,根本不考虑丢精的情况(就算考虑了,cd都是奇数,不会丢精)
那么x2-y2==(c2+d2+2c*d)/4-(c2+d2-2c*d)/4==(4c*d)/4==c*d==a
枚举x2,看看x2-a是不是完全平方数
如果是的话,那么c==x+√(x2-a)和d==x-√(x2-a)就都是a的因子
可以枚举x2,找出a的所有因子!
有用的性质:
接着上面的证明,x==(c+d)/2,a==c*d

本文探讨整数分解的费马方法,该方法基于算术基本定理,通过将正整数n转化为2k*a的形式,然后对奇数a进行因式分解。利用x和y的关系寻找因子,通过枚举x²并判断x²-a是否为完全平方数,找到a的因子。文章还提到在枚举过程中,x²需大于等于a以确保有解,并提供了C++和Java的代码示例。

1万+

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



