暂无链接

第一题

【问题描述】

给定 n,求所有小于等于 n 的数,与 n 的最大公约数之和。

【输入格式】

输入包含一个非负整数 n。

【输出格式】

输出一个整数,为求和的结果。

【输入样例 1】

10

【输出样例 1】

27

【样例说明 1】

有四个数和 10 的最大公约数为 1,四个数为 2,一个数为 5,一个数为 10。

【输入样例 2】

123456

【输出样例 2】

1644800

【数据范围】

对于 40%的数据点, 1<=n<=1051<=n<=1051。

对于 60%的数据点, 1<=n<=1071<=n<=1071。

对于 100%的数据点, 1<=n<=1091<=n<=1091。

题解

我特么为什么信了LZRLZR\mathcal{LZR}的邪要去推式子。。。

考虑gcd(i,n)gcd(i,n)gcd(i,n)肯定是nnn的约数,那么不妨枚举n" role="presentation" style="position: relative;">nnn的约数来统计每个约数的贡献。

因为gcd(i,n)=dgcd(i,n)=dgcd(i,n)=d,就有gcd(nd,id)=1gcd(nd,id)=1gcd(\frac{n}{d},\frac{i}{d})=1,即ddd出现了所有小于等于nd" role="presentation" style="position: relative;">ndnd\frac{n}{d}且与ndnd\frac{n}{d}互质的数的个数次,所以ddd的贡献就是d×φ(nd)" role="presentation" style="position: relative;">d×φ(nd)d×φ(nd)d\times \varphi(\frac{n}{d})。

注意特判nn<script type="math/tex" id="MathJax-Element-1010">n</script>为完全平方数的情况。

代码
#include<bits/stdc++.h>
using namespace std;
const int M=1e5+5;
int mx,n;
long long ans;
int phi(int x)
{if(x==1)return 1;int sqt=sqrt(x),ans=1,flag=0;for(int i=2;i<=sqt;++i){for(;x%i==0;x/=i,ans*=i,flag=1);if(flag)ans=ans/i*(i-1),flag=0;}if(x>sqt)return ans*(x-1);return ans;
}
void in(){scanf("%d",&n);}
void ac()
{mx=sqrt(n);for(int i=1;i<=mx;++i)if(n%i==0)ans+=1ll*i*phi(n/i)+1ll*(n/i)*phi(i);if(mx*mx==n)ans-=1ll*mx*phi(n/mx);printf("%lld",ans);
}
main(){in();ac();}

[2018.08.02 T1] 第一题相关推荐

  1. 2018.08.02 hdu1558 Segment set(并查集+计算几何)

    传送门 这个直接用并查集维护. 每加入一条线段就将它与其他能相交的集合合并,维护一个sizesize域表示每个集合的大小. 代码: #include<bits/stdc++.h> #def ...

  2. 133.Python修炼之路【138-前端-JQuery-Json】2018.08.02

    json json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式 ...

  3. 今日头条2018春季校园招聘第一题

    在n个元素的数组中,找到差值为k的数字对去重后的个数. 输入: 第一行,n 和 k,n 表示数字个数,k 表示差值 第二行,n 个正整数 输出: 差值为 k 的数字对去重后的个数 #include & ...

  4. 贝壳找房 2019校招 研发类试卷C++ 编程题 2018.08.19

    贝壳找房 2019校招 研发类试卷编程题 C++ 2018.08.19 遍历的同时求出最小值min 和 村庄高度和sum,sum-min即可 #include <iostream>usin ...

  5. 2018美团点评编程题第一题

    晚上参加美团的笔试,今天从坐了一天的车,到了学校匆忙吃了饭,然后就开始了.确实是,脑子有点不灵光. 编程的第一题: 给定一个序列,输出这个序列子串的和为K的倍数的子串的长度,如果有重复,输出最大长度. ...

  6. 招商银行信用卡2018春季招聘研发(第一批)编程题 - 题解

    招商银行信用卡的题难度一般,基本都能做出来,因此,解析就写得简单些了.而且题中没有给出数据范围,说明数据不会很大,因此这三个题都可以暴力求解. 第一题 题目 给出一个非空字符串,判断这个字符串是否是由 ...

  7. 拼多多算法岗第一场笔试 2020.08.02

    过题情况 第一题 100% 第二题 100% 第三题 100% 第四题 20% 第一题: 小模拟 #include<bits/stdc++.h> using namespace std; ...

  8. 2018年第九届蓝桥杯【C++省赛B组】【第一题:第几天】

    欢迎大家加入CSDN-蓝桥杯竞赛社区 https://bbs.csdn.net/forums/lanqiaobei 蓝桥杯历届题目及解析汇总(附思路及代码)[点击此进入] 蓝桥杯,ACM算法学习[文档 ...

  9. 今日头条2018校园招聘第一题 ---POJ 2479

    第一次参加公司的招聘笔试,虽然只是抱着试试水的心态去参加的,可惜的是第一题就做错了..... 第一题,其实只是一个求最大子段和的变式题,不过笔试的时候也不知道怎么了,就是不知道思路,最后还写了一个错的 ...

  10. 2018.08.20高二互测

    2018.08.20 NOIp模拟赛 GKK大佬出的毒瘤题,烧脑.全是原题就不要密码保护了. 第一题 T1链接 ​ 一张图,每条边有代价也有限制,遍历过的点可以解锁这些限制,求最短路.这是一道套路题, ...

最新文章

  1. 使用c语言标准库中的时间函数
  2. 数字非压缩光端机的选购原则
  3. 大数据工具使用——安装Hadoop(多台服务器)和Hive、Hbase
  4. ADB投屏_最强开源投屏神器,跨平台电脑控制+文件传输——scrcpy
  5. 网络中pkt是什么意思_网络流行语Cp、磕么?是什么意思?
  6. Java 算法 入学考试
  7. java 页面级缓存_用CashFilter实现页面级缓存实践
  8. 还在用print()查找错误?日志消息不香嘛? | 原力计划
  9. javaweb 初学建议
  10. 分布式系统的基本特征
  11. 下行物理信道rs_LTE下行物理信道与物理信号
  12. ATK-SIM900A入门
  13. qqxml卡片 php代码,qqxml卡
  14. 新品流量 DRS动态评分 店铺层级 搜索权重 增加流量 保持流量持续上升的技巧
  15. oracle 数据库锁 lock mode 的几种类型
  16. 用VMware安装Windows 8.x虚拟机镜像系统详细流程
  17. Teranex Express格式转换器
  18. C语言-qsort函数详解及使用例
  19. GEE开发之MODIS_NDVI年均值数据分析
  20. 网狐_经典版机器人添加说明

热门文章

  1. n倍角公式的行列式形式与证明
  2. Sitadel:一款功能强大的Web应用扫描器
  3. C++/QT控制通过VISA控制硬件设备,超级容易学会的控制硬件方法
  4. unixlinux命令,20个 Unix/Linux 命令技巧
  5. shell---字体颜色
  6. bzoj1048 [HAOI2007]分割矩阵
  7. ubuntu 14.04 gitlab 的搭建
  8. python取反运算
  9. MySQL server has gone away问题得解决方案
  10. ASP.NET读取XML文件