写在前面:

  数论被誉为数学皇后,是研究整数性质的理论(好多人对数论的范围不清楚额)

  而算术基本定理是数论中的重要定理

  这篇文章是我对于算术基本定理的一些研究,研究的资料源自博客,百科,问答,持续更新

  非原创部分会标明出处

  原创部分转载请标明出处啦~

  若有侵权请告知啦

——图片来自youtube上的Fluffle Puff系列动画

目录

  • 结论

  • 证明

  • 应用

  一  单项式

  1. 证明√2是无理数

  2. 证明素数有无限个

  3. 欧拉函数

  4. 计算正整数N的正因数的个数

  5. 计算正整数N的所有正因数的和

  6. 判断nm是否可以被s整除

  7. n!质因数分解

  8. 判断n!能否被s整除

  二  从单项式到多项式

  1. GCD(a,b)*LCM(a,b) == a*b

  2. 更相减损术

  3. 欧几里得算法

  4. 拓展欧几里得算法

  5. 拓展欧几里得算法的多解

  • 实现

  1. 试除法分解大整数

  2. 整数分解费马方法

  3. Pollard Rho算法

结论

  唯一分解定理(代数基本定理)即算术基本定理

  算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为[◹]素数,那么N可以唯一分解成有限个质数的乘积:

N == P1a1P2a2P3a3......Pnan

  这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数

  这样的分解称为 的标准分解式

——bia度百科

  In number theory, the fundamental theorem of arithmetic, also called the unique factorization theorem or the unique-prime-factorization theorem, states that every integer greater than 1 either is a prime number itself or can be represented as the product of prime numbers and that, moreover, this representation is unique, up to (except for) the order of the factors.

For example,

1200 == 24 × 31 × 52 == 5 × 2 × 5 × 2 × 3 × 2 × 2 == ...

  The theorem says two things for this example: first, that 1200 can be represented as a product of primes, and second, that no matter how this is done, there will always be exactly four 2s, one 3, two 5s, and no other primes in the product.

  The requirement that the factors be prime is necessary: factorizations containing composite numbers may not be unique (e.g., 12 == 2 × 6 == 3×4==……).

  This theorem is one of the main reasons why 1 is not considered a prime number: if 1 were prime, then factorization into primes would not be unique; for example, 2 == 2 × 1 == 2 × 1 × 1 == ...

——Wikipedia

译:

这些因子必须是素数,因为包含合数的因式分解不是唯一的,例如,12==2×6==3×4==……

这个定理是导致1不被看作素数的主要原因之一

如果1是素数的话,那么就算分解成素数也不是唯一的,例如,2==2×1==2×1×1==……

  即算术基本定理的内容由两部分构成:

分解的存在性
分解的唯一性

——http://tieba.biadu.com/p/1680603442

  算数基本定理在密码学中发挥着重要作用

  可以说算术基本定理提供了一个观察数与数之间关系的角度

证明

  (某一种证法)

  假设存在大于1的自然数不能写成质数的乘积,把最小的那个称为n
  根据自然数的可除性(是否能表示成两个不是自身的自然数的乘积)分成3类:质数、合数和1

  ∵n 大于1,且根据假设,n 不是质数

  ∴n是合数

  ∵每个合数都可以分解成两个严格小于自身而大于1的自然数的积,设n == a*b,其中a 和b 都是介于1和n 之间(而不包括)的自然数

  ∴按照n 的定义,a 和b 都可以写成质数的乘积

  ∴n == a*b 也可以写成质数的乘积

  ∴假设失败

  ∴大于1的自然数必可写成质数的乘积

——http://tieba.biadu.com/p/1680603442

   (证明方法还有好多好多)

应用

 一  单项式

  • 证明√2是无理数

  (某一种证法)

  思路:

    利用算术基本定理证明√2不能写成两数之比即可

有理数是一个整数 和一个正整数 的比

无理数,也称为无限不循环小数,不能写作两整数之比

  假设√2 == a/b  (a,b∈Z*,且GCD(a,b) == 1)

  ∵(a/b)2 == (√2)2

  ∴a== 2b2

  ∴(1/2)a*a == b2

  ∵a∈Z*

  ∴b2 | (1/2)a  ……①式

若有非零整数a和整数b,存在整数q使得b=a*q

那么称b可被a整除,记为a|b

  ∵a,b∈Z*,且GCD(a,b) == 1,且a== 2b2

  ∴a>b>1

  ∴根据算术基本定理有

    a == P1x1P2x2P3x3......Pmxm

    b == P1y1P2y2P3y3......Pnyn  (P1,P2,P3...为连续的质数,x1,x2,x3...xm,y1,y2,y3...yn为非负整数,m,n为正整数)

  ∴带入①式  P12y1P22y2P32y3......Pn2yn | (1/2)(P1x1P2x2P3x3......Pmxm)

  ∴2P12y1P22y2P32y3......Pn2yn | (P1x1P2x2P3x3......Pmxm)  b有素数因子P0满足P0|a

  ∴P0|a且P0|b,与GCD(a,b) == 1相矛盾

  ∴假设失败,不存在√2 == a/b

  ∴√2是无理数

——https://zhidao.biadu.com/question/1797542160185315587.html

  • 证明素数有无限个

  思路:

    假设素数最大的为pn,利用算术基本定理证明还有比pn更大的素数

  假设素数只有有限的n个,最大的一个素数是pn

  设q为所有素数之积加上1,即q == ( 2 * 3 * 5 * …… * pn )+1

  根据假设,q不是素数

  根据算术基本定理,q可以被2、3、……、p中的数整除才对

  但是q被这2、3、……、p中任意一个整除都会余1

  则q是素数,与假设矛盾

  假设失败,素数有无限个

——https://wenda.so.com/q/1509592418215606?src=9999&cid-pre=1000204

  • 欧拉函数

  [◹]欧拉定理

φ(n) = n(1-1/p1)(1-1/p2)……(1-1/pn)

  • 计算正整数N的正因数的个数

  根据算术基本定理N = P1a1P2a2P3a3......Pnan(P1<P2<P3......<Pn均为质数,其中指数ai是正整数)

  记f(N)为正整数N的正因数的个数

  思路:

    根据计数原理,将相同的质因数看作一类,每一类中有ai+1种情况(0也视为一种情况),不同的质因数之间的关系就是类与类的关系,则得到

f(N) == (a1+1)(a2+1)(a3+1)...(an+1)

——https://blog.csdn.net/elbadaernu/article/details/75670038

  • 计算正整数N的所有正因数的和

  根据算术基本定理N = P1a1P2a2P3a3......Pnan(P1<P2<P3......<Pn均为质数,其中指数ai是正整数)

  记f(N)为正整数N的正因数的和

  思路:

    根据乘法结合律易得到

f(N) == (P10+P11+P12+……+P1a1)(P20+P21+P22+……+P2a2)……(Pn0+Pn1+Pn2+……+Pnan)

——https://blog.csdn.net/elbadaernu/article/details/75670038

  另外,

    当f(N) == 2N 时,称N为完全数

    当f(N) < 2N 时,称N为盈数

    当f(N) > 2N 时,称N为亏数

  •  判断nm是否可以被s整除

  给定正整数n,m,有好多好多个s(最多100000个),试判断nm是否可以被s整除

  (0 < n <= 109  0 <= m <= 300000  0 < s <= 1018)

  思路:

    问题的关键是nm好大好大的,可以选择利用算术基本定理分解nm来实现(s有好多好多个,显然不能分解s)

    既然是nm,不妨把每个Pini的指数ni乘上m,得到好多Pini*m

    ∵据同余定理,有

若有正整数a,b,c,d

满足a == b*c,且a≡0 (mod d)

那么有(((b mod d)*(c mod d)) mod d) ≡0 (mod d)

    ∴如果nm是否可以被s整除,那么必然在进行以下操作过程中,会出现temp==0 的时候

C++:

1 //int tot为n的质因数种类数
2 //int p[]为n的质因数
3 //int index[]为n的质因数分别对应的指数
4 int temp=1;
5 for(re int i=1;i<=tot;++i){
6     temp*=pow(p[i],index[i]*m);
7     temp%=s;
8 } 

    若出现了temp == 0,则nm是否可以被s整除

    若执行完了也没有出现temp == 0,则反之

  •  n!质因数分解

  给出正整数n,请编程输出n!的标准分解式,形如  4! == 2^3*3^1

  (n <= 10^6)

  思路:

    因为是阶乘,所以小于等于n的质数一定是其质因数,大于n的质数一定不是

    所以其标准分解式所含质数Pi已确定

    而对于质数Pi,在n!的分解式中的指数a== n/Pi1+n/Pi2+……+n/Pix  (n>=Pix)

    两部分拼到一起就好了

    n好小,这种方法可以的

  • 判断n!是否可以被s整除

  给定多对n,s(n,s都<=231),判断n!是否可以被s整除

  (Time limit: 3.000 seconds)

  思路:

    综合 n!质因数分解nm是否可以被s整除 的思路

    质数Pi,在n!的分解式中的指数a== n/Pi1+n/Pi2+……+n/Pix  (n>=Pix)

    执行 nm是否可以被s整除 中的操作即可

——https://blog.csdn.net/xieshimao/article/details/6342322

二  从单项式到多项式

  • GCD(a,b)*LCM(a,b) == a*b

  举个例子:

  根据算术基本定理

76 == 22*191

57 == 31*191

GCD(76,57)  ==  19  ==  191

LCM(76,57)  ==  228  ==  22*31*191

MUL(76,57)  ==  4332  ==  22*31*192

  即

  GCD(a,b)  选择每个质因子最小的指数作为结果中该质因子的指数

  LCM(a,b)  选择每个质因子最大的指数作为结果中该质因子的指数

  MUL(a,b)  选择每个质因子的指数的和作为结果中该质因子的指数

  而由于最小的指数和最大的指数可能相等,但不是同一个,两者之和就是每个质因子指数的和,即

GCD(a,b)*LCM(a,b) == a*b

  另外还有

  76 MOD 57 == 19 == 191

  a MOD b  a每个质因子的指数减去b中每个质因子的指数作为结果中该质因子的指数(但规定如果有一个质因子为负就取消本次所有减法,结果就是a本身)

  虽然这四种运算都还是在单项式的范围内,但这是从单项式走向多项式的关键所在

ps:无意间想到的,错了别打我

  • [◹]更相减损术
  • [◹]欧几里得算法
  • [◹]拓展欧几里得算法
  • [◹]拓展欧几里得算法的多解

实现

  对于算术基本定理的实现即大整数的因数分解

  大整数分解目前仍是世界级难题,其有很多种算法,性能上各有差异

  下面是实现大整数分解的部分方法:

  • []试除法分解大整数

  • []整数分解费马方法

  • []Pollard Rho算法

转载于:https://www.cnblogs.com/Antigonae/p/10090578.html

对 算术基本定理 的研究相关推荐

  1. 因式分解,算术基本定理,积性函数(POJ 1452 Happy2004)

    积性函数:是指对于所有互质的整数a和b有性质f(ab) = f(a) * f(b) 算术基本定理:任何一个大于1的正整数都能唯一分解为有限个质数的乘积,即N = p1^x1 * p2^x2 * p3^ ...

  2. 算术基本定理证明用计算机,良序原理:算术基本定理的证明

    相关: [第一数学归纳法 vs 第二数学归纳法 vs 良序定理](http://www.cnblogs.com/liqiuhao/p/7799269.html) 首先不要把良序原理(Well-orde ...

  3. 算术基本定理(维基百科)

    算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数,若不是本身就是质数,就是可写为2个以上的质数的积,而且这些质因子按大小排列之后,写法仅有一种方式.例如:{\displaystyle ...

  4. 算术基本定理“质数分解唯一性的证明”:古典方法与现代方法

    算术基本定理的最早证明是由欧几里得给出的. 每一个比1大的自然数N只能有一种方式分解成质数的乘积. 推论:若一个质数p是乘积ab的因子,则p不是a的因子就是b的因子. 大于1的自然数必可写成质数之积 ...

  5. sumdiv 算术基本定理的推论

    sumdiv Sol: 直接把A质因数分解,由算术基本定理的推论可知: \[ ans=\prod^{cnt}_{i=1}(\sum^{B*c_i}_{j=0}p_i^j)\ (mod\ 9901) \ ...

  6. C++ 算术基本定理

    描述 算术基本定理(将一个正整数分解质因数),又称为正整数的唯一分解定理,即:每个大于1的自然数(且不是质数)均可分解为质数的积,而且这些质因数按小大排列之后,写法仅有一种方式(唯一的).请编写程序对 ...

  7. 算术基本定理证明相关引理与见解

    算术基本定理(唯一分解定理) 有感与浅见 [引自<现代密码学><初等数论><信息安全数学基础>] -索引:①算术基本定理证明 ②[良序集N+]在数论证明的强有力性 ...

  8. 最大公约数、最小公倍数与算术基本定理

    最大公约数.最小公倍数与算术基本定理 最大公因数和最小公倍数与素数分解式有什么联系呢? 举个例子:我们尝试分解样例中的提到的一组数12,15(最大公约数和最小公倍数分别是3和60): 12 = 2 2 ...

  9. 聊一聊数学中的基本定理(一)——算术基本定理的证明

    早点关注我,精彩不错过! 系列开篇辞 在每一个独立出来的学科中,无论文科还是理科,总会有几个标志性的成果和结论,一定程度上代表了这个学科的特点,光荣和本质.比如物理学的牛顿定律和相对论,信息科学中的熵 ...

最新文章

  1. Maven学习总结(七)——eclipse中使用Maven创建Web项目
  2. WINCE平台下C#应用程序中使用看门狗
  3. linux登出系统,讲解Linux操作系统进入与退出系统方法
  4. Hexo错误_FATAL missed comma between flow collection entries at line
  5. 华为机试支持python吗_4.10华为暑期实习生机试题目,python解答
  6. 企业实战(Jenkins+GitLab+SonarQube)_07_Jenkins 安全设置
  7. Angular问题02 创建模块失败、 angular-cli名称问题、升级angular-cli
  8. prettyping.sh: ping 之美
  9. SATA硬盘检测修复及MHDD的一些使用详解
  10. ASP.NET状态管理详解,让你明明白白
  11. Oracle 数据库升级
  12. VC 无标题栏对话框移动
  13. arcgis图层控制
  14. 全国计算机一级word题库,2016全国计算机一级《MS Office》选择题题库
  15. ios识别人脸自动拍照_iOS 相机流人脸识别(一)-人脸框检测(基于iOS原生)
  16. 文书档案管理系统服务器版,文书档案管理系统
  17. Python3,csvkit功能竟如此强大,不仅可以转换csv格式文件,还能进行数据处理和分析。
  18. 页面添加蒙版,但是不影响页面其他事件响应
  19. java如何设置直线的宽度_设置线条的宽度lineWidth
  20. 移动机器人 | 同时定位与建图

热门文章

  1. 程序设计思维与实践 Week12 作业 必做题 A-zjm找数
  2. Win7系统服务优化攻略
  3. 网上商城项目(购物车下单、支付)
  4. 【树状数组】清点人数
  5. 凌动z3735f运行64位linux,在z3735上装ubuntu,装完的经验
  6. 云计算 第四章 微软云计算 Windows Azure
  7. 重装java后hadoop配置文件的修改
  8. Fractions to Decimals
  9. 核酸检测软件开发方案
  10. 异步协议与同步协议:面向字符的协议BSC协议