poj 2480 Longge's problem
/**
大意: 计算f(n) = ∑ gcd(i, N) 1<=i <=N.
思路: gcd(i,x*y) = gcd(i,x) * gcd(i, y ) 所以gcd 为积性函数
又因为积性函数的和函数 也是积性函数(具体数学,了解即可)
f(n) = f(p1^a1 * p2^a2 * p3^a3*......* pn^an )
= f(p1^a1) * f(p2^a2) * f(p3* a3) ......
现在我们先单独考虑一个 f(p1^a1)
f(p^k)=1*φ(p^k)+ p*φ[p^(k-1)]+p^2*φ[p^(k-2)]+…+ p^(k-1)*φ[p]+ p^k*φ[1]②
由欧拉函数性质知:φ(p^k)=(p-1)*p^(k-1)① 将①代入②得到:
f(p^k)= 1*φ(p^k) + p*φ[p^(k-1)] + p^2*φ[p^(k-2)] +…+ p^(k-1)*φ[p] + p^k*φ[1]
=1*(p-1)*p^(k-1)+p*(p-1)*p^(k-2)+ p^2*(p-1)*p^(k-3)+…+p^(k-1)*(p-1)+p^k (这要注意φ[1]=1不能代入①式求解)
=(p-1)*p^(k-1)+ (p-1)*p^(k-1)+(p-1)*p^(k-1)+…+(p-1)*p^(k-1)+ p^k
=k*(p-1)*p^(k-1)+ p^k
**/
#include <iostream> using namespace std; int main()
{
long long n;
while(cin>>n){
long long ans =;
for(long long i=;i*i<=n;i++){
long long tmp =;
long long cnt =;
while(n%i==){
tmp *=i;
cnt++;
n = n/i;
}
ans *= (cnt*(i-)*tmp/i + tmp);
}
if(n>){
ans *= *n-;
}
cout<<ans<<endl;
}
return ;
}
poj 2480 Longge's problem的更多相关文章
- poj 2480 Longge's problem [ 欧拉函数 ]
传送门 Longge's problem Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7327 Accepted: 2 ...
- poj 2480 Longge's problem 欧拉函数+素数打表
Longge's problem Description Longge is good at mathematics and he likes to think about hard mathem ...
- POJ 2480 Longge's problem 欧拉函数—————∑gcd(i, N) 1<=i <=N
Longge's problem Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6383 Accepted: 2043 ...
- [poj 2480] Longge's problem 解题报告 (欧拉函数)
题目链接:http://poj.org/problem?id=2480 题目大意: 题解: 我一直很欣赏数学题完美的复杂度 #include<cstring> #include<al ...
- 题解报告:poj 2480 Longge's problem(欧拉函数)
Description Longge is good at mathematics and he likes to think about hard mathematical problems whi ...
- POJ 2480 Longge's problem (积性函数,欧拉函数)
题意:求∑gcd(i,n),1<=i<=n思路:f(n)=∑gcd(i,n),1<=i<=n可以知道,其实f(n)=sum(p*φ(n/p)),其中p是n的因子.为什么呢?原因 ...
- poj 2480 Longge's problem 积性函数
思路:首先给出几个结论: 1.gcd(a,b)是积性函数: 2.积性函数的和仍然是积性函数: 3.phi(a^b)=a^b-a^(b-1); 记 f(n)=∑gcd(i,n),n=p1^e1*p2^e ...
- POJ 2480 Longge's problem 积性函数
题目来源:id=2480" style="color:rgb(106,57,6); text-decoration:none">POJ 2480 Longge's ...
- poj 2480 Longge's problem 积性函数性质+欧拉函数
题意: 求f(n)=∑gcd(i, N) 1<=i <=N. 分析: f(n)是积性的数论上有证明(f(n)=sigma{1<=i<=N} gcd(i,N) = sigma{d ...
随机推荐
- 我的 Azure VM 为何会重新启动?
在客户创建的客服案件中, Azure VM意外重启是一个常见的问题,客户要求客服确定重新启动的原因.希望下面的详细说明能够帮助您了解 Azure VM重新启动的原因. WindowsAzure大约 ...
- HDU1069:Monkey and Banana(DP+贪心)
Problem Description A group of researchers are designing an experiment to test the IQ of a monkey. T ...
- Android系统JNI的实现方式
Android系统JNI的实现方式 All rights reserved JNI(Java Native Interface)定义了一种Java代码调用C或者C++代码等其它代码的方式. 在A ...
- 倒计时IE6+
很简单的 下面是我为了做多个倒计时更改之后的 dome 下载链接 兼容 IE7以上 IE6没测试应该没问题 http://yunpan.cn/cf29rxmGKuMyJ 提取码 ca61
- SQL2008中Merge的用法(轉載)
在SQL2008中,新增了一个关键字:Merge,这个和Oracle的Merge的用法差不多,只是新增了一个delete方法而已.下面就是具体的使用说明: 首先是对merge的使用说明: merge ...
- iOS实践02
第二天了,上了一天课,软件测试.数据挖掘.概率论,晚上了才有时间捣鼓捣鼓程序. 今天只是简单的做了一点.觉得自己思考的写不出来,只能简单的写一个过程,不像第一次写这个,少了很多思考的. 1.完善tab ...
- c语言中的字符数组与字符串
1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y ...
- JavaScript 堆
1.IE中不兼容ajax中data最后一个参数加逗号,其余chrome Firefox均支持. code: $("document ").ready(function() { $( ...
- PGA与SGA
当用户进程连接到数据库并创建一个对应的会话时,Oracle服务进程会为这个用户专门设置一个PGA区,用来存储这个用户会话的相关内容.当这个用户会话终止时,数据库系统会自动释放这个PAG区所占用的内存. ...
- 批量 GBK 转 UTF8 java
package encoding; import java.io.File; import java.io.IOException; import java.util.Collection; impo ...