bzoj 2705: [SDOI2012]Longge的问题 欧拉函数
来源:互联网 发布:黑客论坛数据库下载 编辑:程序博客网 时间:2024/05/29 18:04
Description
Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题。现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N)。
Input
一个整数,为N。
Output
一个整数,为所求的答案。
Sample Input
6
Sample Output
15
HINT
【数据范围】
对于60%的数据,0<N<=2^16。
对于100%的数据,0<N<=2^32。
分析:对于n的某个约数k,满足gcd(n,i)=k的i个数量为phi(n/k)
因为i的数量可以转化为求满足gcd(n/k,j)=1且j<n/k的j的数量,即phi(n/k)
那么我们只要对n的每个约数进行统计就好了
代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#define ll long longusing namespace std;int getphi(int n){if (n==1) return 1;int phi=n;for (int i=2;i<=(int)sqrt(n);i++)if (n%i==0){phi=phi/i*(i-1);while (n%i==0) n/=i;}if (n>1) phi=phi/n*(n-1);return phi;}int main(){int n;scanf("%d",&n);ll ans=0;int x=(int)sqrt(n);for (int i=1;i<=x;i++)if (n%i==0) ans+=(ll)getphi(i)*n/i+(ll)getphi(n/i)*i;if (x*x==n) ans-=(ll)getphi(x)*x;printf("%lld",ans);return 0;}
0 0
- 【bzoj】2705 - [SDOI2012]Longge的问题(欧拉函数)
- bzoj 2705: [SDOI2012]Longge的问题 欧拉函数
- 【BZOJ 2705】[SDOI2012]Longge的问题 欧拉函数
- [BZOJ 2705][SDOI2012]Longge的问题:欧拉函数
- bzoj 2705: [SDOI2012]Longge的问题(欧拉函数)
- bzoj 2705 [SDOI2012]Longge的问题 欧拉函数
- BZOJ-2705-Longge的游戏-SDOI2012-欧拉函数
- BZOJ 2705([SDOI2012]Longge的问题-欧拉函数φ(i))
- BZOJ 2705 SDOI2012 Longge的问题 因数分解+欧拉函数
- bzoj 2705: [SDOI2012]Longge的问题 【欧拉函数求GCD】
- 2705: [SDOI2012]Longge的问题 欧拉函数
- 2705: [SDOI2012]Longge的问题|欧拉函数
- HYSBZ 2705: [SDOI2012]Longge的问题【欧拉函数】
- 2705: [SDOI2012]Longge的问题 欧拉函数
- [BZOJ2480]SDOI2012 Longge的问题|欧拉函数
- BZOJ2705 [SDOI2012]Longge的问题(欧拉函数)
- [欧拉函数]Bzoj2705 Longge的问题[SDOI2012]
- 【bzoj2705】【sdoi2012】【longge的问题】【欧拉函数】
- javascript 使用btoa和atob来进行Base64转码和解码
- 管理系统UI之四:使用全屏沉浸模式(Using Immersive Full-Screen Mode)
- 插件GsonFormat快速实现JavaBean
- Oracle位图索引引发的阻塞与死锁
- java细节之null == 和 ==null
- bzoj 2705: [SDOI2012]Longge的问题 欧拉函数
- 云帮系列文章:技术架构说明
- MTK RIL 调试方式
- 227. Basic Calculator II
- 管理系统UI之五:响应UI可见性的变化(Responding to UI Visibility Changes)
- 【总结】软件工程视频
- Python字符串匹配存在的问题
- 数据分析技能提升十大建议
- 一线互联网技术团队管理经验谈