欧拉函数,欧拉筛
對(duì)一個(gè)正整數(shù)N,歐拉函數(shù)是小于N且與N互質(zhì)的數(shù)的個(gè)數(shù).。
φ(n) = n*(1-1/p1)*(1-1/p2)*......(1-1/pn)?? 其中(p1.....pn)為N的素因子
ll oula(ll n)///單個(gè)數(shù)求歐拉
{ll ans=n,a=n;for(int i=2;i*i<=a;i++){if(a%i==0){ans=ans/i*(i-1);while(a%i==0) a/=i;}}if(a>1) ans=ans/a*(a-1);return ans;
}
void init()///歐拉打表
{for(int i=0;i<maxn;i++)f[i]=i;for(int i=2;i<maxn;i++){if(f[i]==i){f[i]=f[i]/i*(i-1);///是素因子才往上更新for(int j=i+i;j<maxn;j+=i)f[j]=f[j]/i*(i-1);}}
}
性質(zhì)如下:https://blog.csdn.net/w144215160044/article/details/51158735
總結(jié)
- 上一篇: poj 2449 Remmarguts'
- 下一篇: string 基本用法