Description

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

Input

一个整数,为N。

Output

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

Sample Input

6

Sample Output

15

HINT

【数据范围】

对于60%的数据,0<N<=2^16。

对于100%的数据,0<N<=2^32。

———————————————————————

这道题如果一个数x gcd(n,x)==y 那么gcd(b/y,x/y)==1

所以我们枚举因数d 求一下1-n/d有多少个数和n/d的gcd为1 这个可以用欧拉函数

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
const int M=1e3+7;
LL read(){LL ans=0,f=1,c=getchar();while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}return ans*f;
}
LL n,v,ans;
int p[M],cnt;
LL f(LL x){for(int i=1;i<=cnt;i++)if(x%p[i]==0) x=x/p[i]*(p[i]-1); return x;}
int main(){n=read(); v=n;for(LL x=2;x*x<=v;x++)if(v%x==0){p[++cnt]=x;while(v%x==0) v/=x;}if(v!=1) p[++cnt]=v;for(LL x=1;x*x<=n;x++)if(n%x==0){LL y=n/x;ans=ans+y*f(x);if(x!=y) ans=ans+x*f(y);}printf("%lld\n",ans);return 0;
}

View Code

转载于:https://www.cnblogs.com/lyzuikeai/p/7664991.html

bzoj 2705: [SDOI2012]Longge的问题——欧拉定理相关推荐

  1. bzoj 2705: [SDOI2012]Longge的问题(欧拉函数)

    2705: [SDOI2012]Longge的问题 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 3077  Solved: 1914 [Submit ...

  2. P2303 [SDOI2012] Longge 的问题

    P2303 [SDOI2012] Longge 的问题 思路 我们显然可以枚举每一对数的gcdgcdgcd进行求解,进而我们有如下推导: =>∑i=1ngcd(i,n)=>\sum _{i ...

  3. P2303 [SDOI2012] Longge(数论/欧拉函数)

    P2303 [SDOI2012] Longge 一道看似非常基础的数论题,但是蕴含了非常多的知识,求解 ∑i=1ngcd(i,n)\sum_{i=1}^ngcd(i,n) i=1∑n​gcd(i,n) ...

  4. BZOJ 2707: [SDOI2012]走迷宫 [高斯消元 scc缩点]

    2707: [SDOI2012]走迷宫 题意:求s走到t期望步数,\(n \le 10^4\),保证\(|SCC| \le 100\) 求scc缩点,每个scc高斯消元,scc之间直接DP 注意每次清 ...

  5. BZOJ.3004.[SDOI2012]吊灯(结论)

    题目链接 BZOJ 洛谷 题意: 将树划分为k个连通块,要求每个连通块大小相同.输出可能的大小. 结论: 满足条件时颜色的连通块数为k,当且仅当有 \(n/k\) 个节点满足它的子树是k的倍数(显然还 ...

  6. BZOJ2705 [SDOI2012]Longge的问题 欧拉函数

    Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 3874  Solved: 2469 [Submit][Status][Discuss] Descrip ...

  7. 【bzoj2705】[SDOI2012]Longge的问题 欧拉函数

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

  8. BZOJ 2707: [SDOI2012]走迷宫( tarjan + 高斯消元 )

    数据范围太大不能直接高斯消元, tarjan缩点然后按拓扑逆序对每个强连通分量高斯消元就可以了. E(u) = 1 + Σ E(v) / degree(u) 对拍时发现网上2个程序的INF判断和我不一 ...

  9. bzoj 2707: [SDOI2012]走迷宫(Trajan+高斯消元+Dp)

    2707: [SDOI2012]走迷宫 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 862  Solved: 328 [Submit][Statu ...

最新文章

  1. 查处的数据如何乱序_老司机总结常用镜像方法,让镜像数据更加可靠
  2. 2020人工神经网络第一次作业-参考答案第九部分
  3. 裂痕第一至五季/以法之名Damages迅雷下载
  4. 查找数组中第二个最小元素
  5. 什么是用户对计算机进行配置的重要工具,《计算机常用工具软件》试题1
  6. Spark(6)——Spark与scala交互
  7. 尖括号与双引号所引起的错误
  8. linux登录vnc的命令行,用VNC远程登陆linux (ZT)
  9. python类库26[web2py之介绍]
  10. 太强了!这款轻量级中间件几行代码就搞定SpringBoot的分库分表问题
  11. oracle负数,oracle取交集_oracle取负数_oracle case when
  12. java jxl上传excel_JAVA实现上传,下载,jxl操作Excel和邮件发送
  13. 评国内三大B2C网站首页的信息架构
  14. Qt QJsonObject QString QJsonArray 互转
  15. 通过Atomsk、Ovito和lammps进行高熵合金的多晶体建模及渲染
  16. CISA要求联邦机构修复被震网病毒攻击利用的漏洞
  17. 机器学习笔记(四)——正则化
  18. 2015年阿里巴巴校招笔试题
  19. 用python打开\显示\保存图像
  20. UI设计教程分享之RGB与CMYK色彩模式对比

热门文章

  1. boost::describe模块实现枚举转字符串的测试程序
  2. ITK:从Seed开始迭代图像
  3. ITK:创建前向差异内核
  4. VTK:网格之SolidClip
  5. VTK:图表之EdgeWeights
  6. OpenCV字母识别letter recognition的实例(附完整代码)
  7. OpenCV图像列表创建者imagelist creator的实例(附完整代码)
  8. C语言从未排序的链接列表中删除重复项的算法(附完整源码)
  9. C语言斐波那契数列(附完整源码)
  10. QT绘制百分比条形图。