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;通过这种…

an导入html5,H5-FLASH:AN HTML5-BASED FLASH RUNTIME

摘要&#xff1a;Flash has been widely deployed to many internet applications.Nevertheless,as a closed development platform,there are more and more concerns arisen around its security and performance problems.On the other hand,HTML5 provides an alternative …

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…

中南民族大学计算机类有什么具体专业,中南民族大学计算机科学学院计算机科学与技术专业简介...

计算机科学与技术专业计算机科学与技术专业1985年开始招收本科生。1989年开设计算机应用专业。1998年教育部进行专业调整&#xff0c;成立了计算机科学与技术专业。2012年&#xff0c;计算机科学与技术专业获得校级品牌专业称号。计算机科学与技术专业师资雄厚&#xff0c;结构…

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;失效率就又开始提高。又称为“浴…

python时间计算_python datetime库使用和时间加减计算

datetime库使用 一、操作当前时间 1.获取当前时间 >>> importdatetime>>> printdatetime.datetime.now()2019-07-11 14:24:01.954000 时间格式化输出&#xff1a; >>> print datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")2019-…

桌面计算机打开不了怎么办,电脑桌面上的所有东西都打不开了 怎么处理

1、如果各分区下带autorun.inf一类的隐藏文件&#xff0c;删除后最好重新启动电脑。2、在文件类型中重新设置打开方式(以XP为例)打开 我的电脑&#xff0d;&#xff0d;工具&#xff0d;&#xff0d;文件夹选项&#xff0d;&#xff0d;文件类型&#xff0c;找到“驱动器”或“…

原生js实现京东商城楼梯效果

这个可能有些兼容问题和小bug,新手写的不完善 欢迎指出 <!DOCTYPE html> <html> <head><title></title><meta charset"utf-8" /><style type"text/css">*{margin: 0px;padding: 0px;list-style: none;}#header{…

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;图…