模板 - 数学 - 数论 - 数论常识

由于某些众所周知的原因,都是列出来icpc里面的常jian用guo的简单数论知识,应该都不会进行证明,甚至会不严谨,比如对0和1这样的数的特殊判定,都是根据实际情况特别处理。毕竟目前只讲究应用而不关心理论的优美。

因数

假如存在一个整数\(k\),使得\(n=kd\),则称\(d\)整除\(n\),或者\(d\)\(n\)的一个因数。

不过一般题目中指的都是正因数,有些奇葩题里面会有负的因数,负数在模意义下的运算有点奇怪。

质数

恰好有2个正因数的正整数。

一些常见的质数:998244353(原根是3),1e9+7,1e9+9,19260817,10007,10009

判定\(n\)是不是质数的方法:

\(O(\sqrt{n})\)直接分解、预处理小质数之后再枚举质数分解(根据质数定理貌似会快一点但是没什么用,也是\(O(\sqrt{n})\))、Miller–Rabin算法。

合数

有大于2个正因数的正整数。

分解合数的方法:

和验证质数类似、Pollard-Rho算法。

众所周知,1既不是质数也不是合数,不过在很多情况下它拥有与质数类似的表现(比如各种数论函数),但是由于它和算术基本定理有些瓜葛,还是单列出来方便。

所以0是质数还是合数呢?应该质数合数这些概念是对正整数才适用的吧。反正都是特例特殊判断就可以了。(0在有些函数中表现得奇怪,比如阶乘,应该是充当一个单位元的角色,而不是简单的全部认为函数值是0)

质数定理

\(x\)以内(一般认为“\(x\)以内”都是指\([1,x]\))的质数的个数,记为\(\pi(x)\),质数定理给出这个函数的一个很好的估计\(\pi(x)\sim\frac{x}{\ln(x)}\),这个\(\ln\)很明显就是指自然对数了。

常见的,1e5以内的质数个数不超过9.6e3,1e7以内的质数个数不超过6.7e6,1e9以内的质数不超过5.1e7。

好像有一些亚线性筛法可以求出\(n\)以内的质数的个数。更准确的说,至少min25筛可以,可以快速准确求出1e11内的\(\pi(x)\)。(min25筛的变形好像可以解决很多非积性函数前缀和的问题)

参考资料

素数 - OI Wiki

posted @ 2019-11-06 12:16  KisekiPurin2019  阅读(917)  评论(1编辑  收藏  举报