2^n-1的因数分解问题

我们只讨论正整数集合的问题,N=2n-1 (n∈正整数)

1、 当n=2*i, (i∈正整数)

N=22i-1=(2i+1)(2i-1),

其最小因子为:i=1时,2+1=3,(21-1)=1 (因子1不考虑)

较大因子为(2i+1),(2i-1),关于(2i+1)的因子,参考另一篇文章(2n+1)的因数分解问题,
(2i-1)则循本篇文章规律。

2、 当n=3*i, (i∈正整数)

N=23i-1,

其最小因子为:i=1时, (23-1)=7

3、 当n=4*i, (i∈正整数)

N=24i-1=(22i+1)(22i-1)= (22i+1) (2i+1)(2i-1),

其最小因子为:i=1时,24-1=15 ,即为:(22+1)=5, (2+1)=3,

较大因子为(22i+1) ,(2i+1),(2i-1),如此类推。

4、 当n=5*i, (i∈正整数)

N=25i-1,

其最小因子为:i=1时,(25-1)=31,

较大因子可以通过n=5*i的其他因子分解变换来推算。

5、 当n=6*i, (i∈正整数)

N=26i-1=(23i+1)(23i-1),

其最小因子为:i=1时,(26-1) ,即为:(23+1)=9=3*3,(23-1)=7,

较大因子为(23i+1) , (23i-1),如此类推。

6、 当n=7*i, (i∈正整数)

N=27i-1

其较小因子为:i=1时,(27-1)=127,

较大因子可以通过7*i的因子分解变换来推算。

7、 当n=8*i, (i∈正整数)

N=28i-1=(24i+1)(24i-1)= (24i+1) (22i+1) (2i+1)(2i-1),

因8=2*4,其符合2i,4i规律,

其较小因子为:i=1时,(28-1)=255,(24+1)=17, (22+1)=5,(22-1) =3,

对于大数,如n=8*7=56,N=256-1

当然可以取i=2,3,4,5,6, 不小于7时均可求其因子,其中可能有较多重复。

i=2, 因子为:(216+1),(28+1), (24+1),(216-1),其中2,3项因子与i=1时重复。

如此类推,得到更多因子,(23*8+1),(23*8-1),(24*8+1),(24*8-1), (25*8+1),(25*8-1),(26*8+1),(26*8-1),这些因子均成对出现,

其中偶次方均可进一步分解:(224-1)= (212+1) (212-1)= (212+1) (26+1) (23+1) (23-1)

以下不一一分析。

较大因子为(24i+1), (22i+1),(2i+1),(2i-1),

…………

到此,我们可以看出,实际上只考虑n的所有奇数因子,就可寻找出大数的因子。

综上,得出如下结论:

对于任意形如: N=2n-1,

当n可以分解为a1,a2,a3,…… ai,多个质因子(2除外) (i,a∈正整数)

因子为:(2a1-1),(2a2-1) …… (2a-1)或(2a1*a2-1) ,(2a1*a3-1)等等。

当n=2a*i时,可以运用了平方差公式进一步分解幂指数。

当n为质数时,其因子只有 2n-1

例1:求N=299-1的因子有哪些?

首先分解指数的因子 99=119=333,

则其中两个因子必为:Y1=29-1=511,

Y2=211-1=2047

Y3=23-1=7,

Y2=233-1=8589934591=2047x4196353=23x89x7x599479

所以,N=299-1因子为: 23, 89, 7, 511, 599479

它们的循环节长度分别为:22, 44, 6, 24, 299739

其 N=299-1的倒数循环节长度Q=LCM(22, 44, 6, 24, 299739)= 2397912

例2:求N=2238-1的因子有哪些?

首先 238=2x7x17=2x119=14x17=34x7,

则其因子为:Y1=22-1=3,

Y2=27-1=127,

Y3=217-1=130171

Y4=214-1=16384,

Y5=234-1=(217+1)(217-1)=130173x130171

Y6=2119-1=?

Y7=27+1,(由Y4衍生)

Y8=217+1, (由Y5衍生)

例3:求N=230-1的因子有哪些?

首先 30=235=152=65=10*3,

则其因子为:Y1=22-1=3,

Y2=23-1=7,

Y3=25-1=31

Y4=26-1=63=7*9,

Y5=210-1=1023

Y6=215-1=32767=731151

Y7=23+1=9=3*3,(由Y4衍生)

Y8=25+1=33=3*11, (由Y5衍生)

从而求出N=230-1的所有因子 3, 11, 7, 31, 151, 331,

它们的循环节长度分别为: 1, 2, 6, 15, 75, 110

其 N=230-1的倒数循环节长度Q=LCM(1,2,6,15,75,110)=1650

2^n-1的因数分解问题相关推荐

  1. 64位以内Rabin-Miller 强伪素数测试和Pollard rho 因数分解解析

    在求解POJ1811题Prime Test中应用到的两个重要算法是Rabin-Miller强伪素数测试和Pollard r因数分解算法.前者可以在的时间内以很高的成功概率判断一个整数是否是素数.后者可 ...

  2. POJ 1811 Prime Test (Rabin-Miller强伪素数测试 和Pollard-rho 因数分解)

    题目链接 Description Given a big integer number, you are required to find out whether it's a prime numbe ...

  3. 基础编程题之因数分解

    文章目录 题目1 解题思路 代码 题目2 解题思路 代码 题目1 牛客 解题思路 首先对于求素数,因数分解这类的题目,搜索范围一般是[2,sqrt(a)] 因为数学中:假设a合数,并且a == b * ...

  4. 微课|中学生可以这样学Python(例6.4):因数分解

    适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第6章  函数 6.6  精彩例题分析与解答 例6.4  因数分解(递归法) 京东购买链接:htt ...

  5. Python使用递归法对整数进行因数分解

    所谓因数分解,是指把一个整数变成其所有质因数相乘的形式,例如10=2*5, 39000=2*2*2*3*5*5*5*13. from random import randint def factors ...

  6. 整数分解 费马方法c语言,因数分解(费马的方法)

    原标题:因数分解(费马的方法) 触碰标题下面一行的"邵勇老师"查看所有文章:触碰"数学教学研究", 关注本微信公众号(sx100sy). 本公众号内容均由邵勇( ...

  7. Vijos1889 天真的因数分解

    描述 小岛: 什么叫做因数分解呢? doc : 就是将给定的正整数n, 分解为若干个素数连乘的形式. 小岛: 那比如说 n=12 呢? doc : 那么就是 12 = 2 X 2 X 3 呀. 小岛: ...

  8. 输出递归因数分解php,[学习笔记] Miller-Rabin质数测试 Pollard-Rho质因数分解

    Miller-Rabin质数测试 & Pollard-Rho质因数分解 考试遇见卡质因数分解的题了...活久见...毒瘤lun 于是就学了一发qaq Pollard-Rho分解质因数的话需要依 ...

  9. 因数分解 EduCoder习题

    任务描述 本关任务:计算因数分解的种数. 给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * - * an,并且1 < a1 <= a2 <= a ...

  10. 因数分解 Pollard rho

    因数分解 Pollard rho 算法思路 随机生成两个数a,ba,ba,b,然后求gcd⁡(n,a−b)\gcd\pod{n,a-b}gcd(n,a−b),如果其值不为111,则这个数就是nnn的一 ...

最新文章

  1. python飞机大战源代码-制作python程序windows安装包(飞机大战源码)
  2. 热烈庆贺清明小长假的到来
  3. apache下php无法连接mysql问题的解决
  4. 在python中用递归的方法编程_python基础之函数,递归,内置函数
  5. c#调用c++ dll const char* String类型转换问题。传值,与接收返回值问题
  6. 【java笔记】线程池的介绍和使用
  7. (二)设置hexo支持mermaid
  8. 如何开启深度学习之旅?这三大类125篇论文为你导航(附资源下载)
  9. 嵌入式linux触摸屏校正命令,[转]基于嵌入式Linux的通用触摸屏校准程序
  10. 最小二乘法:求回归直线方程
  11. vuex技术多组件共享数据-vuex模块化+namespace
  12. LTE之3GPP_协议下载_协议命名
  13. sql注入漏洞--sqlmap使用
  14. 设计模式“6”大原则!
  15. 数据流图DFD --详细介绍
  16. BCG 各控件使用说明
  17. 生命有一种负重叫时间
  18. 视频目标跟踪综述【一】
  19. 系统穿越频率用matlab,基于Matlab的自动控制系统设计
  20. 任意离散点曲线求交点c++实现

热门文章

  1. html批量转换ppt,将ppt批量转换成图片(一张幻灯片转成一张图片)
  2. 计算图——一种快速求偏导数的方法
  3. 大学计算机之软件设计程序框图,《程序框图、顺序结构》教学设计
  4. 计算机在未来对人类生活的影响,日常生活中计算机技术的发展对我们的影响
  5. 攻克拖延症——经历记录与心得分享
  6. Firefox定位网页元素工具
  7. echarts柱状图显示百分比
  8. 小程序中switch case如何优化
  9. STM32入门指南(0)—配置开发环境
  10. win11 打开 IE7 兼容模式