数论模版-欧拉函数、莫比乌斯函数和素数
2014-10-28 12:00
411 查看
/*Author:WNJXYK*/ #include<cstdio> #include<iostream> #include<cstring> #include<string> #include<algorithm> #include<queue> #include<set> #include<map> using namespace std; #define LL long long #define Inf 2147483647 #define InfL 10000000000LL inline void swap(int &x,int &y){int tmp=x;x=y;y=tmp;} inline void swap(LL &x,LL &y){LL tmp=x;x=y;y=tmp;} inline int remin(int a,int b){if (a<b) return a;return b;} inline int remax(int a,int b){if (a>b) return a;return b;} inline LL remin(LL a,LL b){if (a<b) return a;return b;} inline LL remax(LL a,LL b){if (a>b) return a;return b;} const int Maxn=10000000; LL prime[Maxn/2+10]; bool valid[Maxn+10]; int primes; inline void getPrime(){ memset(valid,true,sizeof(valid)); for (int i=2;i<=Maxn;i++){ if (valid[i])prime[++primes]=i; for (int j=1;j<=primes && prime[j]*i<=Maxn;j++){ valid[prime[j]*i]=false; if (i%prime[j]==0) break; } } } LL miu[Maxn+10]; inline void getMiu(){ for (int i=1;i<=Maxn;i++){ int target=(i==1?1:0); int delta=target-miu[i]; miu[i]=delta; for (int j=i+i;j<=Maxn;j+=i) miu[j]+=delta; } } LL phi[Maxn+10]; LL minDiv[Maxn+10]; LL sum[Maxn+10]; inline void getPhi(){ for (int i=1;i<=Maxn;i++) minDiv[i]=i; for (int i=2;i<=i*i;i++) if (minDiv[i]=i) for (int j=i*i;j<=Maxn;j+=i) minDiv[j]=i; phi[1]=1; for (int i=2;i<=Maxn;i++){ phi[i]=phi[i/minDiv[i]]; if ((i/minDiv[i])%minDiv[i]==0){ phi[i]*=minDiv[i]; }else{ phi[i]*=minDiv[i]-1; } } } /* int primes,prime[Maxn],mu[Maxn],g[Maxn],sum[Maxn]; void getPrime_Miu_G_S(){ static bool vis[Maxn]; memset(vis,0,sizeof(vis)); mu[1]=1;primes=0; for(int i=2;i<Maxn;i++){ if(!vis[i]) prime[primes++]=i,mu[i]=-1,g[i]=1; for(int j=0;j<primes&&i*prime[j]<Maxn;j++){ vis[i*prime[j]]=1; if(i%prime[j]) mu[i*prime[j]]=-mu[i],g[i*prime[j]]=mu[i]-g[i]; else{ <span style="white-space:pre"> </span>mu[i*prime[j]]=0;g[i*prime[j]]=mu[i];break;} } } sum[0]=0; for(int i=1;i<Maxn;i++) sum[i]=sum[i-1]+g[i]; }*/ int main(){ return 0; }
相关文章推荐
- O(n)求素数,求欧拉函数,求莫比乌斯函数,求对mod的逆元,各种求
- 数论快速入门(同余、扩展欧几里德、中国剩余定理、大素数测定和整数分解、素数三种筛法、欧拉函数以及各种模板)
- 【数论】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- HDU 1695 GCD (数论-整数和素数,欧拉函数,组合数学-容斥原理)
- 【数论】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 数论之 素因子分解,素数筛选法,欧拉函数和扩展欧几里得算法 (整理)
- 线性时间内筛素数+欧拉函数+莫比乌斯函数
- hdu 1695 综合数论 欧拉函数 分解质因子 容斥原理 打印素数表 帅呆了的一个题目 详解
- O(n)求素数,求欧拉函数,求莫比乌斯函数,求对mod的逆元,各种求
- 数论之素数,包括eratosthenes算法,欧拉函数
- 数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)
- 模板整理:数论---线性筛素数,线性筛欧拉函数
- 线性筛素数+欧拉函数+莫比乌斯函数
- 【数论内容】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 【数论内容】线性筛素数,线性筛欧拉函数,求前N个数的约数个数
- 线性时间内筛素数+欧拉函数+莫比乌斯函数
- 【数论】【素数】素数相关基础——欧拉函数与欧拉定理
- 数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)
- 数论 day 2 CRT 素数筛 逆元 欧拉函数 (板子)
- 文章标题 数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)