bzoj2705(欧拉函数)
来源:互联网 发布:gta5亚洲妹子捏脸数据 编辑:程序博客网 时间:2024/06/17 12:37
给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N)。
0<N<=2^32。
数据太大,phi函数无法预处理,所以要直接算,这里是要枚举他的因数,以该因数为gcd的数量来算,典型题
#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;ll n;ll phi(ll n){ll ans=n,sq=(ll)sqrt(n);for (int i=2;i<=sq;i++)if (n%i==0){ans=ans/i*(i-1);while (n%i==0) n/=i;}if (n>1) ans=ans/n*(n-1);return ans;}int main(){scanf("%lld",&n);ll ans=0,sq=(ll)sqrt(n*1.0);for (int i=1;i<=sq;i++)if (n%i==0){ans+=i*phi(n/i);if (i*i==n) continue;ans+=n/i*phi(i);}printf("%lld",ans);return 0;}
总结
数据范围来考虑做法,这里就的确无法预处理
0 0
- bzoj2705(欧拉函数)
- bzoj2705 欧拉函数
- BZOJ2705 [SDOI2012]Longge的问题(欧拉函数)
- [BZOJ2705][SDOI2012]Longge的问题(欧拉函数)
- bzoj2705 Longge的问题 (欧拉函数)
- BZOJ2705[Longge的问题] 欧拉函数
- [欧拉函数]Bzoj2705 Longge的问题[SDOI2012]
- 【bzoj2705】【sdoi2012】【longge的问题】【欧拉函数】
- 【bzoj2705】[SDOI2012]Longge的问题 欧拉函数
- [BZOJ2705] [SDOI2012] Longge的问题 - 欧拉函数
- bzoj2705: [SDOI2012]Longge的问题 欧拉函数
- BZOJ2705 [SDOI2012]Longge的问题 【欧拉函数】
- BZOJ2705: [SDOI2012]Longge的问题(欧拉函数)
- bzoj2705[SDOI2012]Longge的问题 欧拉函数
- BZOJ2705 [SDOI2012]Longge的问题 【欧拉函数】
- 【欧拉函数】BZOJ2705(SDOI2012)[Longge的问题]题解
- 【欧拉函数】BZOJ2705 [SDOI2012]Longge的问题
- bzoj2705
- Android ORM框架介绍之greenDao封装(二)
- 8086/8088 存储器分段概念
- Android Webview Java和Javascript安全交互
- Servlet学习笔记之---重要细节
- gson反序列化出错 (GWT使用中)
- bzoj2705(欧拉函数)
- java.lang.OutOfMemoryError: Java heap space
- 传智播客推出少儿教育品牌-酷丁鱼
- ReactiveCocoa入门教程——第二部分
- 程序员的机器学习入门笔记(三):数据挖掘中矩阵的那些事
- iOS 设置图片圆角
- PHP 之 字符串连接运算符
- 2016年华为机试题
- JMS + Spring