FCS NOI2018 DAY1(数论)

数论与组合数学基础


数论基础

整除: a整除b 记做a|b
因数与倍数: a|b即a是b的因数,b是a的倍数
带余除法: 对于整数a,b(b!=0),设a除以b的商为q,余数为r,则a=bq+r,q,r为整数且0≤r≤|b|
模: a除以b余数为r,记为a modb = r
同余: a,b模p同余即a,b除以p的余数相同,记做a≡b(mod p)


类比十进制运算个位数的规律,不难发现:
(amodp±bmodp)modp=(a±b)modp ( a m o d p ± b m o d p ) m o d p = ( a ± b ) m o d p
(amodp)(bmodp)modp=abmodp ( a m o d p ) ( b m o d p ) m o d p = a b m o d p
注意C++的取模和取余是不一样的,C++的取模是保留符号
的,如(−4) mod 3 = 2,但C++中(-4)%3=-1


质数:正因数只包含1和它本身的正整数(2,3,5,7···)
合数:正因数包含除1和它本身外的数的正整数
(4,6,8,9···)


筛质数

1.暴力枚举

枚举i=1,2,……,n 判断i是否包含【2,√i】内的因数(因数集合具有对称性) 效率太低,考虑改进!!!!

2.一种筛(不知道叫啥)

枚举正整数a,b ≥ 2且ab ≤ n,将ab标记为合数
FCS NOI2018 DAY1(数论)_第1张图片

3.埃拉托斯特尼筛法(埃氏筛法):

优化:只要枚举a为质数的ab
FCS NOI2018 DAY1(数论)_第2张图片

4.线性筛:

性筛法基本思想:每个数只被最小的质因子筛一次,即对
于a是质数,b的最小质因子不小于a的整数对a,b,标记ab为合数
实现:先枚举b,再枚举a,枚举到a|b时结束
FCS NOI2018 DAY1(数论)_第3张图片


质数分布定理:π(n) ∼n/lnn ,π(n)为n以内质数个数
所以存放质数的数组可以开小一些


FCS NOI2018 DAY1(数论)_第4张图片


给定正整数n ≤ 10 7 ,求n的质因数分解式

O(n)预处理n以内质数,同时预处理每个合数x的最小质因
子p x
每次分解不断将n提取一个p x
由于每提取一个质因子n就会减半,单次分解复杂
度O(logn)


最小公倍数与最大公约数

a,b的最大公因数为最大的正整数c,c|a且c|b,记
作c = gcd(a,b)或c = (a,b),特别地(a,0) = (0,a) = 0

a,b的最小公倍数为最小的正整数c,a|c且b|c,记
作c = lcm(a,b)或c = [a,b]
性质:

(a,b) = (a,b ± a)
FCS NOI2018 DAY1(数论)_第5张图片

(a,b) · [a,b] = ab

FCS NOI2018 DAY1(数论)_第6张图片


给定正整数a 0 ,a 1 ,b 0 ,b 1 ,求有多少个正整数x满足:
1. x和a 0 的最大公约数是a 1
2.x和b 0 的最小公倍数是b 1
不超过2000组数据,a 0 ,a 1 ,b 0 ,b 1 ≤ 2 × 10 9
FCS NOI2018 DAY1(数论)_第7张图片


原根

FCS NOI2018 DAY1(数论)_第8张图片


常用的数论函数

FCS NOI2018 DAY1(数论)_第9张图片

注意!!!
这里写图片描述

FCS NOI2018 DAY1(数论)_第10张图片


欧拉函数

FCS NOI2018 DAY1(数论)_第11张图片

容斥原理

FCS NOI2018 DAY1(数论)_第12张图片

FCS NOI2018 DAY1(数论)_第13张图片

FCS NOI2018 DAY1(数论)_第14张图片

FCS NOI2018 DAY1(数论)_第15张图片


莫比乌斯函数

FCS NOI2018 DAY1(数论)_第16张图片

莫比乌斯反演

FCS NOI2018 DAY1(数论)_第17张图片

你可能感兴趣的:(2018福州集训游)