∵∑gcd(i, N)(1<=i <=N)

=k1*s(f1)+k2*s(k2)+...+km*s(km) {ki是N的约数,s(ki)是满足gcd(x,N)=ki(1<=x<=N)的x的个数}

∴gcd(x,N)=ki (1<=x<=N)  <=>  gcd(x/ki,N/ki)=1 (1<=x/ki<=N/ki)

gcd(x/ki,N/ki)=1 (1<=x/ki<=N/ki) 的x的个数 即为φ(N/ki)

∴ans=∑φ(N/ki)*ki

∴O(sqrt(N))枚举约数即可。

 #include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
ll n,ans;
int phi(ll x)
{
ll res=x;
for(ll i=;i*i<=x;i++)
if(x%i==)
{
res=res/i*(i-);
while(x%i==) x/=i;
}
if(x>) res=res/x*(x-);
return res;
}
int main()
{
scanf("%lld",&n);
for(ll i=;i*i<=n;i++) if(n%i==) ans+=(phi(n/i)*i+phi(i)*(n/i));
printf("%lld\n",ans);
return ;
}

最新文章

  1. 信息安全-1:python之playfair密码算法详解[原创]
  2. Mybatis与Spring整合,使用了maven管理项目,作为初学者觉得不错,转载下来
  3. mysql - 其它
  4. Jenkins进阶系列之——17Jenkins升级、迁移和备份
  5. 在桌面chrome中调试android设备中的web页面
  6. Linux命令之type
  7. (三)在js(jquery)中获得文本框焦点和失去焦点的方法
  8. 学java入门到精通,不得不看的15本书
  9. 使用 C# 编程对RTF文档的支持
  10. Linux shell 之 提取文件名和目录名的一些方法
  11. Windows2008 VPN登录
  12. 在textarea的内容后面增加内容
  13. 面试官最爱的volatile关键字
  14. 算法与数据结构(四) 图的物理存储结构与深搜、广搜(Swift版)
  15. 什么 是JavaScript中的字符串类型之间的转换问题详解? 部分4
  16. Python—字典的操作
  17. BZOJ3075[USACO 2013 Mar Gold 3.Necklace]——AC自动机+DP
  18. Oracle Logminer 分析重做日志RedoLog和归档日志ArchiveLog
  19. 【Navicat_Premium_11.0.10】破解版
  20. Java - 问题集 - 导出csv文件中文乱码

热门文章

  1. HDU1166 敌兵布阵(树状数组实现
  2. 51Nod 1256 求乘法逆元--扩展欧几里德
  3. svn无法checkout大文件的解决办法
  4. [bzoj3224]Tyvj 1728 普通平衡树——splay模板
  5. react+redux基础用法
  6. 【JAVA】Eclipse中使用git进行pull远程代码
  7. K-D树问题 HDU 4347
  8. libssh2
  9. SpringBoot集成整合pageHelper分页插件
  10. SQL Server数据库优化笔记