51nod level-5 系列

2017-8-15



题目思路:满足 gcd(x,n)==d 的x的数量即是 最大公约数d的贡献度,那么 gcd(x,n)==d 的数量 等价于 gcd(x/d,n/d)==1的数量 , 即为欧拉函数因此,我们枚举n所有的因子i,求一个euler(n/i) 即为gcd==i的数量,又由于这里 n是1e9范围 , 因子都是成对出现的 因此可以枚举因子到根号n即可若是两个因子不相等,那么两个因子的贡献度都要加上,相等只需要算一次
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 typedef long long LL;
 5
 6 int n;
 7 //int euler[100010];
 8
 9 //void init(){
10 //     euler[1]=1;
11 //     for(int i=2;i<100000;i++)
12 //       euler[i]=i;
13 //     for(int i=2;i<100000;i++)
14 //        if(euler[i]==i)
15 //           for(int j=i;j<100000;j+=i)
16 //              euler[j]=euler[j]/i*(i-1);//先进行除法是为了防止中间数据的溢出
17 //}
18
19 //直接求解欧拉函数
20 int euler(int n){ //返回euler(n)
21      int res=n,a=n;
22      for(int i=2;i*i<=a;i++){
23          if(a%i==0){
24              res=res/i*(i-1);//先进行除法是为了防止中间数据的溢出
25              while(a%i==0) a/=i;
26          }
27      }
28      if(a>1) res=res/a*(a-1);
29      return res;
30 }
31
32
33 int main()
34 {
35
36     scanf("%d",&n);
37     LL ans=0;
38     for(int i=1;i*i<=n;i++)
39     {
40         if(n%i) continue;
41         int d=n/i;
42         ans=ans+1LL*euler(d)*i;
43         if(d!=i) ans=ans+1LL*euler(i)*d;
44     }
45     printf("%lld\n",ans);
46 }
				
时间: 2024-10-08 10:50:28

51nod level-5 系列的相关文章

大熊君学习html5系列之------XHR2(XMLHttpRequest Level 2)

一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会"h5"能够做什么,以及在实际项目中如何去合理的运用达到使用自如,完美驾驭O(∩_∩)O~,好了,废话不多说,直接进入今天的主题, 今天主要讲的是“XMLHttpRequest Level 2 API”及在客户端浏览器中的作用,并且会引入一个实际的例子做为讲解的原型范例,让我们先来看看“XHR AP

随便玩玩系列之一:SPOJ-RNG+51nod 算法马拉松17F+51nod 1034 骨牌覆盖v3

先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率,想象为一个n维长方体,有两个平面与这个几何图形相割,于是就变成了求面(体)积问题,一般要去重,n维区域系数:s^n/n!,至于区间问题,直接前缀之差搞定 然后就是悲催的算法马拉松17F题了...其实是道好题来的,只是出题人不知世界上还有这题,然后某大牛把思路理清后把答案直接搬了过来 经典的1*2骨牌覆

PLSQL_性能优化系列16_Oracle High Water Level高水位分析

2014-10-04 BaoXinjian 一.摘要 高水位线好比水库中储水的水位线,用于描述数据库中段的扩展方式.高水位线对全表扫描方式有着至关重要的影响. 当使用delete 操作表记录时,高水位线并不会下降,随之导致的是全表扫描的实际开销并没有任何减少. 本文给出高水位线的描述,如何降低高水位线,以及高水位线对全表扫描的影响. 1. 何谓高水位线 如前所述,类似于水库中储水的水位线.只不过在数据库中用于描述段的扩展方式. 可以将数据段或索引段等想象为一个从左到右依次排开的一系列块.当这些块

PLSQL_性能优化系列14_Oracle High Water Level高水位分析

2014-10-04 BaoXinjian 一.摘要 高水位线好比水库中储水的水位线,用于描述数据库中段的扩展方式.高水位线对全表扫描方式有着至关重要的影响. 当使用delete 操作表记录时,高水位线并不会下降,随之导致的是全表扫描的实际开销并没有任何减少. 本文给出高水位线的描述,如何降低高水位线,以及高水位线对全表扫描的影响. 1. 何谓高水位线 如前所述,类似于水库中储水的水位线.只不过在数据库中用于描述段的扩展方式. 可以将数据段或索引段等想象为一个从左到右依次排开的一系列块.当这些块

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示 算法系列之二十三离散傅立叶变换之音频播放与频谱显示 导语 什么是频谱 1 频谱的原理 2 频谱的选择 3 频谱的计算 显示动态频谱 1 实现方法 2 杂项说明 结果展示 导语 频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很多人着迷.在上一篇对离散傅立叶变换介绍的基础上,本篇就进一步介绍一下频谱是怎么回事儿,下一篇继续介绍

华为5700系列交换机常用配置示例

华为S5700系列交换机,是我们项目中用的较多的一款,其中24与48口应用较多.现在将华为交换机的一些常用配置整理一下,进行记录.如有错误,请指正. 1 允许telnet(远程登录) 允许华为交换机能telnet,设置密码为[email protected] telnet server en # aaa authentication-scheme default authorization-scheme default accounting-scheme default domain defau

#23 centos5(RHEL)系列操作系统的启动流程、与命令mkinitrd、dracut的使用

centos(RHEL)系列操作系统的启动流程:Intel x86兼容架构: Linux的系统组成:内核 + 应用程序  GUN/Linux:单纯的指Linux内核: 从硬盘存储和启动操作系统的角度: Linux的系统组成:内核 + 根文件系统(rootfs) 内核功能:进程管理,文件系统管理,内存管理,网络协议,驱动程序,安全功能,... Linux系统的系统运行环境可以分为两部分: 内和空间:内核代码(系统调用) 就是内核进程占用的CPU和内存资源的总和: 用户空间:应用程序(进程或线程)

struts2官方 中文教程 系列七:消息资源文件

介绍 在本教程中,我们将探索使用Struts 2消息资源功能(也称为 resource bundles 资源绑定).消息资源提供了一种简单的方法,可以将文本放在一个视图页面中,通过应用程序,创建表单字段标签,并根据用户的语言环境将文本更改为特定的语言. 贴个本帖的地址,以免被爬:struts2官方 中文教程 系列七:消息资源文件  即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下载本章节代码 信息资源属性文件 在Struts2 we

【锁】Oracle锁系列

[锁]Oracle锁系列 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 锁的概念.分类.及其模拟 ② 查询锁的视图及视图之间的关联 ③ 锁的参数(DML_LOCKS.DDL_LOCK_TIMEOUT) ④ FOR UPDATE及FOR UPDATE OF系列 ⑤ 带ONLINE和不带ONLINE创建索引的锁情况(是否阻塞DML操作) ⑥ 包或存过不能编译的解决方法