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 ...
随机推荐
- react-native 入门资源合集
# 了解react-native React Native enables you to build world-class application experiences on native pla ...
- Java的接口及实例
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
- 狼追兔子问题C模拟解
说,一只兔子在O点处,它的洞穴在正北20m的B点处,一只狼位于兔子正东33米的A点处,模拟如下追逐问题:狼以一倍于兔子的速度紧盯兔子追击,问兔子到达洞口前是否会被狼逮住? 网上很多人说能被追上,包括类 ...
- hdu 4741 Save Labman No.004(2013杭州网络赛)
http://blog.sina.com.cn/s/blog_a401a1ea0101ij9z.html 空间两直线上最近点对. 这个博客上给出了很好的点法式公式了...其实没有那么多的tricky. ...
- 移动端纯原生JS不依赖ajax后台服务器实现省市县三级联动
最近好多天没有更新文章,是因为公司的项目忙的不行.今天有点时间,就突然想起在移动端项目中遇到三级联动的问题,网上查了很多资料,都是依赖各种插件,或者晦涩难于理解.于是,自己决定写一个出来. 当然,没有 ...
- 如何交叉编译开源库-->编译c-ares库从失败到成功的过程[ocean]
编译c-ares库从失败到成功的过程c-ares-master: apt-get install libtool ####https://github.com/c-ares/c-ares ==== ...
- SPOJ 7001 VLATTICE - Visible Lattice Points(莫比乌斯反演)
题目链接:http://www.spoj.com/problems/VLATTICE/ 题意:求gcd(a, b, c) = 1 a,b,c <=N 的对数. 思路:我们令函数g(x)为g ...
- POJ 3461 Oulipo(模式串在主串中出现的次数)
题目链接:http://poj.org/problem?id=3461 题意:给你两个字符串word和text,求出word在text中出现的次数 思路:kmp算法的简单应用,遍历一遍text字符串即 ...
- BZOJ 1770: [Usaco2009 Nov]lights 燈( 高斯消元 )
高斯消元解xor方程组...暴搜自由元+最优性剪枝 -------------------------------------------------------------------------- ...
- Windows NTService 后台框架封装
对于后台运行的程序,比如基于C/S架构的服务器.各种监控系统的程序.或者是程序额外的功能需要后台运行来实现,在Windows平台中,服务经常会用到,这种对于需要24×7运行的程序是必备的,至少本人经常 ...