【欧拉函数】BZOJ2705 [SDOI2012]Longge的问题
2017-12-10 19:08
489 查看
题面在这里
考虑如下:
∑i=1n(i,n)=∑d|nd∑id≤n[(id,n)=d]=∑d|nd∑i=1nd[(i,nd)=1]=∑d|nd⋅φ(nd)
然后直接暴力就好了
示例程序:
考虑如下:
∑i=1n(i,n)=∑d|nd∑id≤n[(id,n)=d]=∑d|nd∑i=1nd[(i,nd)=1]=∑d|nd⋅φ(nd)
然后直接暴力就好了
示例程序:
#include<cstdio> #include<cmath> typedef long long ll; ll n,N,ans; ll phi(int x){ int res=x,ti=sqrt(x); for (int i=2;i<=ti;i++) if (x%i==0){ res=res/i*(i-1); while (x%i==0) x/=i; } if (x>1) res=res/x*(x-1); return res; } int main(){ scanf("%lld",&n);N=sqrt(n); for (int i=1;i<=N;i++) if (n%i==0){ ans+=i*phi(n/i); if ((ll)i*i<n) ans+=(n/i)*phi(i); } printf("%lld",ans); return 0; }
相关文章推荐
- BZOJ2705 [SDOI2012]Longge的问题 【欧拉函数】
- 【bzoj2705】[SDOI2012]Longge的问题 欧拉函数
- 【BZOJ 2705】【SDOI 2012】Longge的问题【欧拉函数】
- bzoj2705 [SDOI2012]Longge的问题(欧拉函数)
- [欧拉函数]Bzoj2705 Longge的问题[SDOI2012]
- 【欧拉函数】BZOJ2705(SDOI2012)[Longge的问题]题解
- BZOJ 2705 [SDOI2012]Longge的问题(欧拉函数)
- BZOJ2705 [SDOI2012]Longge的问题 【欧拉函数】
- BZOJ 2705([SDOI2012]Longge的问题-欧拉函数φ(i))
- BZOJ2705 [SDOI2012]Longge的问题(欧拉函数)
- 【bzoj2705】【sdoi2012】【longge的问题】【欧拉函数】
- BZOJ - 2705: [SDOI2012]Longge的问题 【欧拉函数 一道必做的经典题】
- BZOJ 2705 SDOI2012 Longge的问题 因数分解+欧拉函数
- 【数论】【枚举约数】【欧拉函数】bzoj2705 [SDOI2012]Longge的问题
- bzoj 2705: [SDOI2012]Longge的问题【欧拉函数+gcd】
- bzoj2705[SDOI2012]Longge的问题 欧拉函数
- bzoj 2705: [SDOI2012]Longge的问题 欧拉函数
- [BZOJ 2705][SDOI 2012]Longge的问题(欧拉函数)
- bzoj 2705 [SDOI2012]Longge的问题 欧拉函数
- BZOJ 2705: [SDOI2012]Longge的问题 [欧拉函数]