整数分解费马方法

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

写在前面:

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

 

整数分解废马方法

  • 整数分解费马方法

  整数分解费马方法与费马小定理无关

  原理:

    任何一个正整数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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值