【梳理】离散数学 第19章 初等数论 19.1 素数 19.2 最大公约数和最小公倍数

教材:《离散数学》第2版 屈婉玲 耿素云 张立昂 高等教育出版社
源文档高清截图在最后

第19章 初等数论

本文用到的全部变量如无特别声明,均为整数

19.1 素数

1、设整数a、b,且b≠0。如果存在整数c使得a = bc,就说a被b整除,或b整除a,记作b | a。也称a是b的倍数,b是a的因数(因子)。任何正整数都至少有两个因数:1和本身,称为平凡因子,其余称为真因子。

2、设整数a,b,且b≠0。存在唯一整数q和r,使得a = qb + r,0 ≤ r < |b|。该表达式称为带余除法,余数r = a mod b。计算机中取余常写成a % b,但按书本定义,余数是非负的(事实上余数可以为负),而计算机中取余时多用运算符 % 。对异号整数做 % 运算可能返回负整数,且绝对值根据语言的不同而不一定与两数绝对值做 % 运算时相同。两个同号整数做 % 运算时,模数才和余数相同。Matlab中,取余记为rem。为了方便,下面一般都将对两个非负数的取余写成a % b。
下面给出模数的定义:
模数 = 被除数-取整后的商×除数 商 = 被除数 / 除数,将商向负无穷大取整。Python 的 % 运算符为取模。
余数的定义:
余数 = 被除数-取整后的商×除数 商 = 被除数 / 除数,将商向零取整。C++ 的 % 运算符为取余。

3、不难验证,整除具有下列性质:
【1】若a | b且a | c,则对任意整数x,y都有a | xb + yc。
【2】若a | b且b | c,则a | c。
【3】设m≠0,则a | b当且仅当ma | mb。
【4】如果a | b且b | a,则a = ±b。
【5】如果a | b且b≠0,则 |a| ≤ |b|。
下面给出定义:如果正整数a大于1且只能被1和a自己整除,则a为质数(素数)。如果a > 1不是质数,则a为合数。1既不是质数也不是合数。下面四条性质中,p均为质数。
【6】如果d > 1且d | p,则d = p。
【7】若p | ab,则p | a或p | b。
设p | a1a2……ak,必存在1 ≤ i ≤ k使得p | ai。
【8】a > 1是合数当且仅当a = bc,其中a > b > 1,a > c > 1。
【9】合数一定有质因数。即a是一个合数,一定存在p使得p | a。

3、算术基本定理(唯一分解定理)设 a > 1,则,其中p1,p2,……,pk是不同的质数,r1,r2,……,rk是正整数。若不计顺序,该表达式是唯一的。这个表达式叫作质因数分解式(素因子分解式)。
这里不予证明。
有时候我们会用到唯一分解定理推广后的表达式:此时r1,r2,……,rk是非负整数,即可以等于0。当ri = 0时,相当于a不含质因数pi。对1而言,所有的ri等于0。
推论 a的因子根本上只含有a的素因子。用数学语言表达,一种写法是:
设,其中p1,p2,……,pk是不同的质数,r1,r2,……,rk是正整数。
正整数d为a的因子的充分必要条件是:。其中0 ≤ si ≤ ri,i = 1,2,……,k。

4、有无穷多个质数。
证明 设只有有限个质数,记为p1,p2,……,pn。设m =p1p2……pn + 1。显然pi % m≠0,1 ≤ i ≤ n。要么m是质数,要么m不是质数,但只有大于pn的质数才能整除m(合数m一定含有质因数),两者是矛盾的。证毕。

5、质数定理 ,π(n)代表 ≤ n的质数个数。证明超出课本《离散数学(第2版)》的范围,不予证明。
下表大致说明了质数的分布情况,可以看出当n越来越大时,小于等于n的质数的个数越来越接近n / ln(n)。

6、如果a是合数,则a必有一个 ≤ sqrt(a)的真因子。
证明 由整除的性质“a > 1是合数当且仅当a = bc,其中a > b > 1,a > c > 1”,显然b和c中一定有一个 ≤ sqrt(a),否则bc > sqrt(a2) = a,矛盾。证毕。
推论 如果a是合数,则a必有一个 ≤ sqrt(a)的质因子。
证明 由上述证明,a = bc有 ≤ sqrt(a)的真因子b。如果b是质数,结论当然成立。如果b是合数,由整除的性质“如果b | a且a≠0,则 |b| ≤ |a| ”和“合数一定有质因数”,b有质因子p < b ≤ sqrt(a)。根据整除的传递性“若a | b且b | c,则a | c”,p也是a的因子,结论成立。

7、埃拉托斯特尼(Eratosthene)筛法(埃氏筛法) 要筛选出不大于n的质数,排除sqrt(n)以内全部质数的倍数即可。
C++代码示例见(前6543个质数 ≤ 65 535,正好能判断 ≤ 4 294 967 295的全部数是否为质数):


                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值