【初等数论】 02 - 整除与公约数
当从这里开始的时候,你的行囊里不需要太多的东西,只要会整数的加减乘除即可。东西多了不仅帮不了你,反而会成为前进的负担。正如在前两篇中一样,你需要首先抛开一切固有思维,清空大脑,带着孩童般的好奇心重新认识这个世界。由于数论经常出现于奥数和智力题中,它往往被当成一种智力游戏,但随着研究的深入,你需要建立一套理论才能看清本质。我们可以从最简单的定义出发,利用理性思维建立这些理论。做题是学习数论的必经途径,你需要在不断地思考中才能有更深刻的理解,但这里我只打算叙述最基础的思想和结论。
1. 整除
数论研究整数本身(或自然数,语境自明),初等数论主要研究整数之间的关系。整数的运算中,加减是最平凡的,得不出什么深入的结论,从而乘除法是唯一可以着手的地方。考虑一个简单的等式
仅从定义出发可以得到整除的许多基本性质,这里就不一一列举了,只给出一个最具代表性的:式子(1),即
考虑
一个自然的问题是,这样的分解唯一吗?你固有的知识可能使你对这个问题相当地自信,但如果冷静思考地一番,就会发现这种自信其实是没有根据的。它的证明并不十分显然,这里通过反证法来推导。假设有某些整数的素数分解不唯一,则存在最小的这样的数,并设它有两个分解式
现在来看数
来思考几个问题热热身吧:
• 求满足
• 求
2. 公约数
有了算术基本定理,整数之间的倍数关系就基本清楚了。而对于两个任意的整数(不一定有倍数关系),只能通过它们共同的约数或倍数来取得联系。两个数
公约数一定程度上体现了整数之间的相关程度,互素则表现了整数之间的无关性。这个观念为我们分析整数集的结构提供了一个好的思想,不大于
算术基本定理虽然很强大,但用它来求公约数或进行整数关系分析的代价太大,并且也很难得到进一步的结论,这时必须引入别的工具。在不做素数分解的情况下,分析整数关系最直观的方法就是带余除法,对任意整数
带余除法为整数的分析提供了一个简单有效的方法。比如我们再回头考虑一下式(1)中的所有线性组合,首先
最大公约数可以看做是整数间的一个基本代数运算,我们已经看到有很多不同的途径来得到它,而这些途径并不依赖于最大公约数的定义。这就让我们想到,其实可以将它们看成是最大公约数的等价定义,在不同的场合灵活使用,可以得到更简洁的方法。以下便列举了这些等价定义,你可以尝试证明它们的等价性。
(1)原始定义:最大的公约数;
(2)约数的公倍数:是所有公约数的最小公倍数;
(3)素数基本定理:素数分解式的公共部分;
(4)线性组合:线性组合的最小正数;
(5)辗转相除法:辗转相除法得到的最小正数。
作为一个基本运算,需要稍微研究一下最大公约数的基本性质,请尝试通过不同途径证明下面的基本性质:
(1)
(2)
(3)若
(4)若
(5)若
(6)
公约数虽然定义简单,但却变化多端,当和其它知识结合起来时,问题会变得很困难。你需要熟练掌握初等数学中各种变形技巧,并需要足够的想象力和创造力。课本中的习题是最好的锻炼场所,你不能绕过那一步,这里仅列几例以抛砖引玉。
• 已知
•
• 证明梅森(Mersenne)数
• 求证
• 若
3. 闲话素数
话说素数的确非常重要,后面我们还会看到它更多的性质,这里再多说两句。首先,欧几里得在《几何原本》回答了素数的个数问题,假设仅有有限个素数
• 相邻素数之间的间隔可以有任意大;
• 证明费马数
• 使用数列
• 求证形如
• 如果
根据算术基本原理,并使用级数理论(后续课程),容易有以下著名的欧拉公式(式子(9))。这个神奇的公式将调和级数与所有素数扯上了关系,这也成为了研究素数的一个突破口,巍峨耸立的黎曼猜想就是对它的扩展研究。顺便提一句,因为调和级数是发散的,故由此此也可以证明素数有无穷多个。
关于素数,还有一些自然的问题是:如何判定一个数是否为素数?如何找出一定范围内的所有素数?它们的分布是怎样的?是否有素数的通项公式?这些问题是很难回答的,它们也是数论的难点,很多问题都还没有被解决。古希腊时期的Eratosthenes筛法是目前仍在使用的筛选素数的方法,它逐步划去每个素数的倍数,从而仅余下素数,这在一般的算法教材里都有介绍。另外一般用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架