数论
BNUbeginner
good luck and have fun!!!
展开
-
线性筛——对i从1取到n gcd(i,n)求和
如果不会线性筛素数的话,建议先看这篇博客了解一下线性筛素数。记f(n)=∑i=1ngcd(i,n)f(n)=\sum_{i=1}^{n}\gcd(i,n)f(n)=∑i=1ngcd(i,n)容易证明f(n)f(n)f(n)一定是积性函数即f(p1t1p2t2⋯pktk)=f(p1t1)f(p2t2)⋯f(pktk)f(p_1^{t_1} p_2^{t_2}\cdots p_k^{t_k}...原创 2019-10-26 15:56:06 · 1663 阅读 · 1 评论 -
线性筛——素数
线性筛素数,可以保证每一个数都是被其最小的质因子筛掉的,所以可以保证时间复杂度在O(n)。实现如下:int prime[MAXN];int vis[MAXN];void oula(int n){ memset(vis,0,sizeof(vis)); prime[0]=0;//用于存素数的个数 for(int i=2;i<=n;i++) { if(!vis[i]) ...原创 2019-01-23 20:50:47 · 1525 阅读 · 0 评论 -
线性筛——欧拉函数
如果不会线性筛素数的话,建议先看这篇博客了解一下线性筛素数。欧拉函数(积性函数都可以线性筛)主要是在线性筛素数的基础上得到的欧拉函数:φ(n)=n∗∏(1−1pi)φ(n)=n* \prod \left(1-\frac{1}{p_i}\right)φ(n)=n∗∏(1−pi1) 其中pip_ipi为nnn的质因子所以:1、当 nnn 为质数的时候 φ(n)=n−1φ(n)=n-1...原创 2019-01-23 21:38:41 · 921 阅读 · 0 评论 -
线性筛——莫比乌斯函数
如果不会线性筛素数的话,建议先看这篇博客了解一下线性筛素数。莫比乌斯函数函数(积性函数都可以线性筛)主要是在线性筛素数的基础上得到的我们知道:若 n=∏i=1npitin=\prod_{i=1}^n p_i^{t_i}n=∏i=1npiti则 μ(n)={(−1)kk=∑i=1ntiandmax(t1,t2,⋯ ,tn)≤10othersμ(n)=\be...原创 2019-01-23 22:20:07 · 1061 阅读 · 1 评论 -
线性筛——约数的个数
如果不会线性筛素数的话,建议先看这篇博客了解一下线性筛素数。线性寻找约数的个数(积性函数都可以线性筛)主要是在线性筛素数的基础上得到的用 f(n)f(n)f(n) 表示 nnn 的约数的个数用 g(n)g(n)g(n) 表示 nnn 的最小质因子的个数我们知道:若 n=∏i=1npitin=\prod_{i=1}^n p_i^{t_i}n=∏i=1npiti则 f(n)=∑i=1...原创 2019-01-24 23:20:55 · 1388 阅读 · 1 评论