BZOJ2705[Longge的问题] 欧拉函数
来源:互联网 发布:宝山区行知小学 编辑:程序博客网 时间:2024/06/04 17:58
Description
Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题。现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N)。
Input
一个整数,为N。
Output
一个整数,为所求的答案。
Sample Input
6
Sample Output
15
解题报告:
令 k|n,m|n gcd(m,n)=k , 令s(k)为gcd为k满足条件的m的个数。
gcd(m/k,n/k)=1, s(k)=euler(n/k)
ans=∑k*φ(n/k) (k|n)
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <cmath>using namespace std;#define LL long longLL n, ans;LL phi( LL x ){ LL m=sqrt(x+0.5); LL ans = x; for ( LL i=2; i<=m; i++) if( x%i==0 ){ ans = ans/i*(i-1); while( x%i==0 ) x/=i; } if( x>1 ) ans = ans/x*(x-1); return ans;}int main(){ scanf("%lld", &n ); ans = 0; for ( LL i=1; i*i<=n; i++ ) if( n%i==0 ){ ans+=(LL)i*phi(n/i); ans+=(LL)(n/i)*phi(i); } printf("%lld", ans); return 0;}
阅读全文
0 0
- BZOJ2705[Longge的问题] 欧拉函数
- BZOJ2705 [SDOI2012]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 [SDOI2012]Longge的问题
- bzoj2705 Longge的问题 (欧拉函数)
- BZOJ2705 Longge的问题
- bzoj2705[SDOI2012]Longge的问题
- 【SDOI2012】【BZOJ2705】Longge的问题
- HashMap实现原理分析
- 【MySQL】20个经典面试题,全部答对月薪10k+
- 四种聚类算法
- 学习总结之JavaWeb实现分页
- ICS Return 1 when x contains an odd number of 1s,0 otherwise(判断二进制表示中1的个数是否为奇数)
- BZOJ2705[Longge的问题] 欧拉函数
- linux 内核代码分析1 TI am335x
- iOS开发常用国外网站清单
- 【NY1013】
- 关于ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
- __I、 __O 、__IO是什么意思?
- Unity 移动端简单手势控制(移动,旋转,缩放)
- Elasticsearch5.6安装配置
- 1032. 挖掘机技术哪家强