Longge的问题 [Bzoj 2705,SDOI2012]

原创 2016年06月01日 13:25:43

题目地址请点击——


Longge的问题


问题描述

Longge 的数学成绩非常好,并且他非常乐于挑战高难度的数学问题。
现在问题来了:给定一个整数 N,你需要求出 Ni=1gcd(i,N)


输入描述

一个整数,为 N


输出描述

一个整数,为所求的答案。


样例输入

6


样例输出

15


HINT

对于 60% 的数据,0<N<=216

对于 100% 的数据,0<N<=232


Solution

x1x2x3,……,xknk 个因数,f(i) 表示满足 gcd(j,n)=i (1<=j<=n)j 的个数。

 ans=ki=1f(xi)xi

显然,f(1)=φ(n)

那么,如何计算 f(k) (k>1) 呢?

 gcd(j,n)=i (1<=j<=n)gcd(ji,ni)=1f(i)=φ(ni)

 ans=ki=1φ(nxi)xi


Code

[cpp]
  1. #include <iostream>  
  2. #include <cstdio>  
  3. #include <cmath>  
  4.   
  5. #define LL long long  
  6.   
  7. using namespace std;  
  8.   
  9. LL n,sqr,ans;  
  10.   
  11. LL phi(LL x){  
  12.     LL tmp=x,tmp2=x,sqr=(LL)sqrt((double)x);  
  13.     for(LL i=2;i<=sqr;i++){  
  14.         if(x%i==0){  
  15.             tmp=tmp*(i-1)/i;  
  16.             while(x%i==0)x/=i;  
  17.         }  
  18.     }  
  19.     if(x!=1)tmp=tmp*(x-1)/x;  
  20.     return tmp;  
  21. }  
  22.   
  23. int main(){  
  24.     scanf(”%lld”,&n);  
  25.     sqr=(LL)sqrt((double)n);  
  26.     for(LL i=1;i<=sqr;i++)  
  27.         if(!(n%i)){  
  28.             ans+=i*phi(n/i);  
  29.             if(i!=n/i)ans+=(n/i)*phi(i);  
  30.         }  
  31.     printf(”%lld\n”,ans);  
  32.     return 0;  
  33. }  
版权声明:写得不好,随便转载,但请注明出处,感激不尽

相关文章推荐

Longge的问题[SDOI2012][bzoj2705]

问题描述 DescriptionLongge Longge 的数学成绩非常好,并且他非常乐于挑战高难度的数学问题。现在问题来了:给定一个整数 N N ,你需要求出 ∑Ni=1gcd(i,N) \s...

bzoj2705 [SDOI2012]Longge的问题

Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题。现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N)。

[BZOJ 2705] SDOI 2012 Longge的问题 · 欧拉函数

首先这题如果想用O(N)做就too native了~ 所以我们就要寻求更有效的算法。 其实hzwer讲得挺好的: 题目中要求出∑gcd(i,N)(1 枚举n的约数k,令s(k)为满足g...

【bzoj 2705】【codevs 2315】[SDOI2012]Longge的问题(莫比乌斯反演)

弹指流年,拂歌尘散

【bzoj2726】[SDOI2012]任务安排

首先暴力dp应该是很简单的 dp[i]=min(dp[j]+cost[i]*(T[i]-T[j]+S)) (j>i) 本来简单的斜率优化因为脑洞大的出题人一句时间可以是负的变成了cdq维护dp...

BZOJ2726 [SDOI2012]任务安排

[] It must be true that today isn't suitable for coding. [Solution]
  • laekov
  • laekov
  • 2014-10-08 19:16
  • 1031

bzoj 2726: [SDOI2012]任务安排

Description 机器上有N个需要处理的任务,它们构成了一个序列。这些任务被标号为1到N,因此序列的排列为1,2,3...N。这N个任务被分成若干批,每批包含相邻的若干任务。从时刻0开...

2705:扩号匹配问题

2705:扩号匹配问题 总时间限制: 1000ms 内存限制: 65536kB 描述在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算...

OpenJudge 2705:扩号匹配问题

2705:扩号匹配问题查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括...

HEOI 2012 旅行问题 BZOJ2746

2746: [HEOI2012]旅行问题 Time Limit: 30 Sec Memory Limit: 256 MB Submit: 979 Solved: 311 Descriptio...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)