【11】数论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
特点:不需要用小于 a 的所有整数去除a
17
素数生成
【例】埃拉托斯特尼(Eratosthene)筛法 对素数的研究从古至今都是数学家的最大乐趣,大约在
公元前250年,古希腊数学家埃拉托斯特尼(Eratosthenes)提 出一个求不超过正整数N的素数的构造性方法,为了纪念塔, 后人称这个算法为埃拉托斯特尼筛法。
证明(欧几里德):反证法,设有有穷多个素数,从小到大 排列为这p1,p2,p3,…,pn, pn是这些素数中最大的素数。 令:m=p1p2p3…pn+1 ,显然,pi不能整除m, 因此,或者m是素数,或者存在比pn大的整数能整除m。 无论哪种情况,都与假设矛盾。所以有无穷多个素数。
12
有多少个素数?
k1, k2 , ks 是正整数 例:30=2*3*5
117=32*13
21560=23*5*72*11
71213=17*59*71
1024=210
10
推论:设 n
p k1 1
p k2 2
p ks s
,
p1,
p2 ,
ps是互不相同的素数,则
正整数d是n的因子的充分必要条件是
d
设p是素数且p | a1a2…ak, 则必存在1≤i≤k, 使得p| ai. 注意:当d不是素数时,d | ab不一定能推出d | a或d | b.
9
算术基本定理
定理(算术基本定理,整数分解定理):任何正整数n>1,可以写成
n
p k1 1
p k2 2
p3k3 ... ps ks
p1 p2 ps 是不同的素数
15
根据上述的定理和推论,写出素数判定算法:
int is_prime(int x) //判定x是否是素数
{ int m;
if(x==2) return 1;
if(x%2==0) return 0;
m=sqrt(x);
for(i=3;i<=m;i++)
if (x%i==0)
return 0; return 1; }
5
例题解析:
6
7
8
素数:整数p>1,在正整数集合中,只有1和p自身能整 数p,
则称p为素数。
合数: 大于1且不是素数
例如, 2,3,5,7,11是素数, 4,6,8,9是合数.
素数性质: 性质1 a>1是合数当且仅当a=bc, 其中1<b<a, 1<c<a. 性质2 合数必有素数因子. 性质3 如果d>1, p是素数且d | p, 则d=p. 性质4 设p是素数且p | ab, 则必有p | a 或者 p | b.
(0 r n )
余数:r m modn
例如, 20 mod 6=2, 13 mod 4=3, 10 mod 2=0
定义(整除):在上式中,如果 r=0,则表示m可以被n整除,
m=qn,记为 n|m, n称为m的因子。
3
定理(整除的性质):设a,b,c是整数
性质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|.
p r1 1
p r2 2
psrs , 其中,0 ri
ki
例:21560有多少个正因子?
解:21560=23*5*72*11 根据推论,r1={0,1,2,3} ;
r2={0,1}
r3={0,1,2};
r4={0,1}
因此21560的正因子个数=4*2*3*2=48 个
11
有多少个素数?
定理(无最大素数定理):有无穷多个素数,或无最大 素数
性质8 若a≠b,n是自然数,则(a-b)|(an-bn). 性质9 若a≠-b,n是正偶数,则(a+b)|(an-bn). 性质10 若a≠-b,n是正奇数,则(a+b)|(an+bn).
4
常见数的整除特征
⑴ 能被2,4,5,8 整除的数的特征 ⑵ 能被3,9 整除的数的特征 ⑶ 能被11整除的数的特征
只能适用于比较 小的整数的判定
16
例: 判断157和161是否是素数. 解 157 , 161 都小于13, 小于13的素数有: 2, 3, 5, 7, 11. 检查结果如下:
2∤157, 3∤157, 5∤157, 7∤157, 11∤157 结论: 157是素数.
2∤161, 3∤161, 5∤161, 7|161(161=7×23) 结论:161是合数.
注:当n是合数时, 2n1一定是合数, 2ab1=(2a1)(2a(b1)+2a(b2)+…+2a+1).
14
素数判定
在C语言中学过的素数判定的基本方法?
定理:如果a是合数, 则a必有小于等于 a 的真因子.
证: 如果a是合数,则a可表示成 a=bc, 其中1<b<a,
1<c<a. 显然, b和c中必有一个小于等于 a . 否则, bc>( a )2=a, 矛盾.
定理(素数分布定理):设 (n)表示小于等于n的素
数个数,则当 n 67 时,有下式成立:
ln
n
3 2
n
n
ln
n
1 2
n
103
104
105
106
107
n 168 1229 9592 78498 664579
n/ln(n) 145 1086 8686 72382 620421
பைடு நூலகம்13
梅森数(Marin Mersenne): 当p为素数时,称具有 2p1形式的数为梅森数。 梅森数可能是素数, 也可能是合数: 221=3, 231=7, 251=31, 271=127都是素数, 而2111=2047=23×89 是合数.到2000左右找到的最大梅森素数是 2134669171, 有4百万位.
算法思想:为了说明问题,研究[2,45]素数
⑴ 首先,2是最小的素数,所有能被2整除的数(偶数)一 定不是素数。删除这些偶数
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
数论基础
河海大学物联网学院 丁海军
1
1 素数 2 最大公约数与最小公倍数 3 同余 4 一次同余方程 5 欧拉定理和费马小定理
2
1 素数
定理(整数表示):如果m和n是整数,n>0,则存在整数q和r, 0<=r<n;使得 m=qn+r。其中,m称为被除数,n为除 数,q为商,r为余数
m qn r
17
素数生成
【例】埃拉托斯特尼(Eratosthene)筛法 对素数的研究从古至今都是数学家的最大乐趣,大约在
公元前250年,古希腊数学家埃拉托斯特尼(Eratosthenes)提 出一个求不超过正整数N的素数的构造性方法,为了纪念塔, 后人称这个算法为埃拉托斯特尼筛法。
证明(欧几里德):反证法,设有有穷多个素数,从小到大 排列为这p1,p2,p3,…,pn, pn是这些素数中最大的素数。 令:m=p1p2p3…pn+1 ,显然,pi不能整除m, 因此,或者m是素数,或者存在比pn大的整数能整除m。 无论哪种情况,都与假设矛盾。所以有无穷多个素数。
12
有多少个素数?
k1, k2 , ks 是正整数 例:30=2*3*5
117=32*13
21560=23*5*72*11
71213=17*59*71
1024=210
10
推论:设 n
p k1 1
p k2 2
p ks s
,
p1,
p2 ,
ps是互不相同的素数,则
正整数d是n的因子的充分必要条件是
d
设p是素数且p | a1a2…ak, 则必存在1≤i≤k, 使得p| ai. 注意:当d不是素数时,d | ab不一定能推出d | a或d | b.
9
算术基本定理
定理(算术基本定理,整数分解定理):任何正整数n>1,可以写成
n
p k1 1
p k2 2
p3k3 ... ps ks
p1 p2 ps 是不同的素数
15
根据上述的定理和推论,写出素数判定算法:
int is_prime(int x) //判定x是否是素数
{ int m;
if(x==2) return 1;
if(x%2==0) return 0;
m=sqrt(x);
for(i=3;i<=m;i++)
if (x%i==0)
return 0; return 1; }
5
例题解析:
6
7
8
素数:整数p>1,在正整数集合中,只有1和p自身能整 数p,
则称p为素数。
合数: 大于1且不是素数
例如, 2,3,5,7,11是素数, 4,6,8,9是合数.
素数性质: 性质1 a>1是合数当且仅当a=bc, 其中1<b<a, 1<c<a. 性质2 合数必有素数因子. 性质3 如果d>1, p是素数且d | p, 则d=p. 性质4 设p是素数且p | ab, 则必有p | a 或者 p | b.
(0 r n )
余数:r m modn
例如, 20 mod 6=2, 13 mod 4=3, 10 mod 2=0
定义(整除):在上式中,如果 r=0,则表示m可以被n整除,
m=qn,记为 n|m, n称为m的因子。
3
定理(整除的性质):设a,b,c是整数
性质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|.
p r1 1
p r2 2
psrs , 其中,0 ri
ki
例:21560有多少个正因子?
解:21560=23*5*72*11 根据推论,r1={0,1,2,3} ;
r2={0,1}
r3={0,1,2};
r4={0,1}
因此21560的正因子个数=4*2*3*2=48 个
11
有多少个素数?
定理(无最大素数定理):有无穷多个素数,或无最大 素数
性质8 若a≠b,n是自然数,则(a-b)|(an-bn). 性质9 若a≠-b,n是正偶数,则(a+b)|(an-bn). 性质10 若a≠-b,n是正奇数,则(a+b)|(an+bn).
4
常见数的整除特征
⑴ 能被2,4,5,8 整除的数的特征 ⑵ 能被3,9 整除的数的特征 ⑶ 能被11整除的数的特征
只能适用于比较 小的整数的判定
16
例: 判断157和161是否是素数. 解 157 , 161 都小于13, 小于13的素数有: 2, 3, 5, 7, 11. 检查结果如下:
2∤157, 3∤157, 5∤157, 7∤157, 11∤157 结论: 157是素数.
2∤161, 3∤161, 5∤161, 7|161(161=7×23) 结论:161是合数.
注:当n是合数时, 2n1一定是合数, 2ab1=(2a1)(2a(b1)+2a(b2)+…+2a+1).
14
素数判定
在C语言中学过的素数判定的基本方法?
定理:如果a是合数, 则a必有小于等于 a 的真因子.
证: 如果a是合数,则a可表示成 a=bc, 其中1<b<a,
1<c<a. 显然, b和c中必有一个小于等于 a . 否则, bc>( a )2=a, 矛盾.
定理(素数分布定理):设 (n)表示小于等于n的素
数个数,则当 n 67 时,有下式成立:
ln
n
3 2
n
n
ln
n
1 2
n
103
104
105
106
107
n 168 1229 9592 78498 664579
n/ln(n) 145 1086 8686 72382 620421
பைடு நூலகம்13
梅森数(Marin Mersenne): 当p为素数时,称具有 2p1形式的数为梅森数。 梅森数可能是素数, 也可能是合数: 221=3, 231=7, 251=31, 271=127都是素数, 而2111=2047=23×89 是合数.到2000左右找到的最大梅森素数是 2134669171, 有4百万位.
算法思想:为了说明问题,研究[2,45]素数
⑴ 首先,2是最小的素数,所有能被2整除的数(偶数)一 定不是素数。删除这些偶数
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45
数论基础
河海大学物联网学院 丁海军
1
1 素数 2 最大公约数与最小公倍数 3 同余 4 一次同余方程 5 欧拉定理和费马小定理
2
1 素数
定理(整数表示):如果m和n是整数,n>0,则存在整数q和r, 0<=r<n;使得 m=qn+r。其中,m称为被除数,n为除 数,q为商,r为余数
m qn r