-
数论总结
-
欧拉筛
核心思想:对于每个合数,都用其最小质因子筛去,故复杂度O(n)
code:
关于这句话:
当prime[j]成为i的素因子时,那么i*prime[j]一定可以表现为一个更小的素因子和一个更大的合数的乘积,在后面一定会被筛去,因此这里直接关闭。
-
欧拉函数
怎样理解?
1.$p$为素数,那么结论显然成立。
2.1-pa中,只有$p$的倍数可以被$p$整除,这样的倍数有pa-1个,减去即可。
3.直接记下即可,证明如下:
对于第1行,与$m$互质的数有$φ(m)$个,而一共有$n$列,对于每个互质的数$r$,$k*m+r$与$m$也互质,故一共有$φ(m)$列数与$m$互质。又因为每一列的$n$个数$k*m+r$在$mod n$意义下构成一个完全剩余系(它们本身都不相等,$mod n$后余数都不相等),故$mod n$后的数构成的数列即为原数列的一个排列,故每一列都有$φ(n)$个数与$n$互质,故$φ(mn)=φ(m)*φ(n)$。
1.由定义可得。
2.由欧拉函数的积性,已证。
3.由筛法公式,对于
由上图,质因子有3个时,个数为集合$S$(方框)减去三个圈的全集。即$S-(1/p1+1/p2+1/p3-1/p1p2-1/p1p3-1/p2p3+1/p1p2p3)$因式分解后即可得出结果。
4.$n$为奇数,$n$与2互质,$φ(2n)=φ(2)*φ(n)=φ(n)$
5.证明如下:
-
欧拉定理
设$ x1,x2...x$φ(m)为$1-m$中与$m$互质的数,那么因为$a%与$m$互质,所以$ a*x1,a*x2...a*x$φ(m)也与$m$互质。
那么有:
比较显然。。。
推论:
$p$为质数,$φ(p)=p-1$把$1$除过来就是逆元了。
-
广义欧拉定理