51nod 1040最大公约数和(欧拉函数)

1040 最大公约数之和
题目来源: rihkddd
基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题
 收藏
 关注
给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 6
1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15
Input
1个数N(N <= 10^9)
Output
公约数之和
Input示例
6
Output示例
15
思路:
目的是求∑(i= 1,n) gcd( i , n );
gcd( i , n ) = x,表示x是n的因子。稍作变形gcd( i / x , n / x) = 1,
看到这个式子可以想到欧拉函数,也就是求比n/x小的与其互质的个数。
因为这些书和n/x互质,乘上x后与n的最大公约数只有x。
也就是说我们先求出每个因子,然后计算每个因子有多少贡献即可。
/** Author:  sweat123* Created Time:  2016/6/27 14:01:46* File Name: main.cpp*/
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<string>
#include<vector>
#include<cstdio>
#include<time.h>
#include<cstring>
#include<iostream>
#include<algorithm>
#define INF 1<<30
#define MOD 1000000007
#define ll long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define pi acos(-1.0)
using namespace std;
const int MAXN = 1000000;
int n;
ll ef(int n) 
{ ll cnt = n; int i; for(i = 2; i * i <= n; i++){ if(n % i == 0) { cnt -= cnt / i;      //   (x-x/p1) *(1-1/p2)*(1-1/p3)*(1-1/p4).....while(n % i == 0) n /= i; } }if(n > 1) cnt -= cnt / n;return cnt; 
} int main(){while(~scanf("%d",&n)){ll ans = 0;for(int i = 1; i <= (int)sqrt(n); i++){if(n % i == 0){ans += ef(n / i) * i;if(n / i != i){ans += ef(i) * (n / i);   }}} printf("%lld\n",ans);}return 0;
}

 

转载于:https://www.cnblogs.com/sweat123/p/5620086.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机安全基础:加密技术知识笔记

1、加密技术介绍 加密技术是最常用的数据安全保密的手段&#xff0c;加密技术的关键在于加密/解密算法和密钥管理。 数据加密的过程&#xff1a;对明文文件或数据按照某种算法进行处理&#xff0c;变成密文。密文需要根据相应的密钥才能获得原来的明文信息&#xff0c;通过这种…

JAVA 获取格林威治时间(GMT)

记录下获取GMT时间的方法&#xff1a; //格式可根据需要自定义&#xff0c;如yyyy-MM-dd HH:mm:ss 等等 SimpleDateFormat sdf new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss GMT", Locale.US); Calendar calendar Calendar.getInstance(); sdf.setTimeZone(Tim…

Linux CentOS下安装Oracle

1 、在安装oracle之前首先安装以下组件包&#xff0c;直接输入下列语句安装。 yum install binutils* -y yum install compat-lib* -y yum install gcc* -y yum install glibc* -y yum install ksh* -y yum install libgcc* -y yum install libstdc* -y yum install libaio* -y…

计算机安全基础:认证技术知识笔记

1、认证技术介绍 认证技术主要是用来解决网络通信过程中通信双方身份的认可。认证的过程涉及加密和密钥交换。认证方一般都会有账户名、口令、使用摘要算法和基于PKI认证。 2、PKI系统介绍 PKI是一种遵循既定标准的密钥管理平台&#xff0c;能够为所有的网络应用提供加密和数字…

python 比例之差z假设检验_假设检验在数据分析中的应用

前言Z检验T检验独立样本t检验配对样本t检验单样本t检验前言在这篇文章中&#xff0c;我不会具体去推导检验统计量和相应拒绝域的得出&#xff0c;这对于大部分非统计学专业的人士来说是晦涩的&#xff0c;我只想通过一个案例告诉大部分初学者假设检验怎么在数据挖掘中使用。%ma…

Java实现字母的大小写转换

String result1 "JAVA";String result2 "springcloud";/*** toLowerCase()* 大写转小写*/System.out.println(result1.toLowerCase());/*** 小写转大写* toUpperCase()*/System.out.println(result2.toUpperCase()); 运行截图如下:

iOS开发tableview二级联动的细节实现中注意的细节总结

首先说网络慢带来的数据显示问题 可以通过判断请求参数是否一致来刷新tableview。 SJBCategaryModel * categaryModel self.categarys[CategarySelectRow]; NSMutableDictionary * params [NSMutableDictionary dictionary]; categaryModel.currentPage 1; params["a&q…

linux ctrlc 退出循环_linux按行读取 (while read line与forloop)

在linux下一般用while read line与for循环按行读取文件。这两种方法有什么区别呢&#xff1f;现有如下test.txt文件&#xff1a;1while read linewhile read line; do echo $linedone < test.txt输出结果与上图一致。这里也可以写为&#xff1a;cat test.txt | while read …

计算机系统基础:计算机可靠性知识笔记

1、计算机可靠性介绍 计算机的硬件故障通常都是由于元器件失效造成的。元器件的可靠性分为三个阶段&#xff1a;开始阶段元器件处于不稳定阶段失效率比较高、第二阶段是正常工作阶段&#xff0c;失效率最低、第三阶段元器件开始老化&#xff0c;失效率就又开始提高。又称为“浴…

IDEA云行项目提示Error: java: OutOfMemoryError

idea运行项目提示如下 解决方法: 调整一下Compiler下面的Compiler Process heap size 参数&#xff0c;默认的是700。如果2048还不能解决问题&#xff0c;试着将它调得更大一些吧&#xff0c; 修改为2048 修改后运行成功

常见的BIOS硬盘故障现象及急救措施

硬盘是电脑的数据仓库&#xff0c;是最为重要的存储设备&#xff0c;由BIOS直接管理。如果硬盘出现故障&#xff0c;一般情况下系统通常会显示一些提示信息&#xff0c;说明问题所在。下面&#xff0c;将一些常见的硬盘故障信息向大家一一介绍。1 C&#xff1a;Drive Failure …

js var是什么类型_JS变量的执行环境和生命周期

温故而知新&#xff0c;这些JS基础知识你都知道吗&#xff1f;今天和大家分享的是 JavaScript 中有关变量的知识&#xff0c;希望这篇文章能让你对JS中的变量有新的认识.目录&#xff1a;变量的执行环境&#xff08;执行上下文&#xff09;执行上下文的生命周期创建变量对象变量…

网络中不能显示全部计算机,win10家庭版局域网中计算机设备无法完全显示的解决方法...

许多用户都喜欢通过局域网来共享一些文件等&#xff0c;打开局域网就可以看到所有共享的计算机&#xff0c;然而有不少win10家庭版用户却发现局域网中只能看到几台计算机设备&#xff0c;无法完全显示&#xff0c;该怎么办呢&#xff0c;现在为大家讲解一下win10家庭版局域网中…

java.lang.NoClassDefFoundError:org/apache/commons/io/Charsets (jsoup配合htmlunit 爬取异步加载的网页遇到的)

最近用jsoup配合htmlunit 爬取异步加载的网页运行代码的时候,报错java.lang.NoClassDefFoundError:org/apache/commons/io/Charsets 报错截图如下 解决措施: 1:common-fileupload 1.3.1的版本依賴的commons-io 2.2&#xff0c;而htmlunit的jar依賴的是common-io 2.4 htmlunit…

echarts 3d地球 背面光线太暗_新技术:多波长光源,同时3D打印多种光敏树脂材料...

如今&#xff0c;光固化3D打印技术已经被广泛的采用&#xff0c;在齿科、首饰、手办等领域&#xff0c;然而如上图一样的常规光固化3D打印机&#xff0c;一次仍然只能打印一种材料。 △FDM技术类型的3D打印机可以通过增加喷头数量来实现多色或者多种材料同时打印&#xff0c;图…

计算机系统基础:计算机性能评价知识笔记

1、计算机性能常用的性能评测方法 1.1 时钟频率 计算机的时钟频率可以反映出机器的运行速度。一般主频越高&#xff0c;速度越快。 1.2 指令执行速度 加法指令执行速度是衡量计算机性能指标的重要指标之一。 1.3 等效指令速度法 随着计算机指令系统发展&#xff0c;种类越来越多…

astc贴图格式是什么意思_c4d配合AEe3d导入c4d模型贴图及插件安装所有流程

所有使用的软件及插件&#xff0c;分享给大家&#xff0c;需要软件或者插件的可以留言我&#xff0c;免费分享给大家&#xff0c;其实也可以网上下载到&#xff0c;就是有的版本和相应需要的插件不兼容和支持&#xff0c;。不少小伙伴用c4d做模型&#xff0c;做好后到底怎么玩&…

前大灯是近光灯还是远光灯_汽修案例:长安福特翼博前大灯间歇自动点亮

点击↑汽修案例关注置顶&#xff0c;获得正时大全一辆行驶里程约2300km的2017年长安福特翼博。客户反映&#xff1a;该车在行驶过程中前大灯间歇出现自动点亮的故障现象。故障现象出现时大灯点亮与否不受大灯开关控制&#xff0c;如图1所示。故障诊断&#xff1a;车辆来店报修时…

commons-httpclient 和 httpclient 区别

commons-httpclient 和 httpclient 区别 项目里的pom中&#xff0c;里面有这么两个包依赖。 <dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version> </depend…

计算机基础:多媒体基础知识笔记

1、媒体的定义 媒体包括两面&#xff1a; 1、物理载体&#xff1a;比如磁盘、光盘、磁带以及相关的播放设备。 2、信息载体&#xff1a;也就是信息的表现形式&#xff0c;比如文字、声音、图像、动画、视频等。CCITT定义的存储媒体和表示媒体。 2、媒体的分类 1、感觉媒体&…