题目链接
题意:求\(\sum_{i=1}^{n}\gcd(i,n)\)

首先可以肯定,\(\gcd(i,n)|n\)。

所以设\(t(x)\)表示\(gcd(i,n)=x\)的\(i\)的个数。

那么答案很显然就是\(\sum_{d|n}t(d)*d\)。

那么\(t(x)\)怎么求呢。

\[t(x)=\sum_{i=1}^{n}[\gcd(i,n)=x]\]
因为若\(\gcd(x,y)=1\),则有\(\gcd(xk,yk)=k\)。
所以
\[t(x)=\sum_{i=1}^{n}[\gcd(i,n)=x]=\sum_{i=1}^{\lfloor\frac{n}{x}\rfloor}[\gcd(i,\lfloor\frac{n}{x}\rfloor)=1]=\phi(\lfloor\frac{n}{x}\rfloor)\]
所以最终答案就是\(\sum_{d|n}[\phi(\lfloor\frac{n}{d}\rfloor)*d]\)

我们可以在\(O(\sqrt n)\)的时间复杂度内求出\(n\)的所有约数,约数个数是\(\log n\)级别的,求\(\phi\)是\(O(\sqrt n)\)的时间复杂度,所以总时间复杂度\(O(\log n\sqrt n)\)

#include <cstdio>
#include <cmath>
using namespace std;
typedef long long ll;
ll n;
ll phi(ll x){int s = sqrt(x); ll ans = x;for(int i = 2; i <= s && x != 1; ++i)if(!(x % i)){ans = ans / i * (i - 1);while(!(x % i))x /= i;}if(x != 1) ans = ans / x * (x - 1);return ans;
}
int main(){scanf("%lld", &n);int i; ll ans = 0;for(i = 1; (ll)i * i < n; ++i)if(!(n % i))ans += phi(n / i) * i + (n / i) * phi(i);if(i * i == n) ans += phi(i) * i;printf("%lld\n", ans);return 0;
}

转载于:https://www.cnblogs.com/Qihoo360/p/9777286.html

【洛谷 P2303】 [SDOi2012]Longge的问题 (欧拉函数)相关推荐

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

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

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

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

  3. bzoj2705(洛谷P2303): [SDOI2012]Longge的问题 (欧拉函数)

    题意 求 ∑i=1ngcd(i,n)∑i=1ngcd(i,n)\sum\limits_{i=1}^ngcd(i,n) 题解 这题-真的要写一下了- 其实吧,结果就是 ∑i|ni∗φ(ni)∑i|ni∗ ...

  4. POJ - 2480 Longge's problem(欧拉函数+唯一分解定理)

    题目链接:点击查看 题目大意:给出一个n,求 题目分析:因为N到了二的三十二次方,所以直接暴力肯定会T,这里介绍两种方法,都可以做实现这个题目 首先我们需要转化一下这个题目,先说一下优化过后的暴力枚举 ...

  5. POJ-2480 Longge's problem 欧拉函数

    详见代码: #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath&g ...

  6. 线性筛法 欧拉筛c语言,[洛谷P3383][模板]线性筛素数-欧拉筛法

    Hibernate Hql 总结 1.from子句 Hibernate中最简单的查询语句的形式如下: from eg.Cat该子句简单的返回eg.Cat类的所有实例. 通常我们不需要使用类的全限定名, ...

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

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

  8. P2303 [SDOI2012] Longge 的问题

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

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

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

  10. 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D

    ​前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...

最新文章

  1. spring配置异步执行
  2. java文本库,自定义文本库
  3. c#数组赋初值_【自学C#】|| 笔记 13 数组
  4. (转载)用C#实现MySQL建库及建表
  5. 合肥磨店职教城论坛使用WNMP平台架设 http://301302.net/
  6. linux php服务器搭建,如何搭建linux服务器
  7. 华为交换机忘记密码怎么办
  8. php下载源文件绕开下载地址,Fengcms 最新版v1.24任意文件下载(绕过过滤)
  9. 虚拟机安装Ubuntu后的问题(不能全屏、不能上网;换源挂代理;安装搜狗输入法;pycharm的sudo模式启动快捷方式)
  10. maven LTDM 部署前台Tomcat 各种折腾---自己总结经验
  11. 国外邮箱哪家好?好用的公司邮箱怎么申请?
  12. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。到第10天早上时,只剩下一个,求第一天有多少桃子。
  13. 各有短长:两款七月家庭有线组网方案推荐(转)
  14. 音视频开发系列(19)玩转 WebRTC 安全通信:一文读懂 DTLS 协议
  15. 广东移动UNT401H南传通过adb装当贝桌面
  16. YII2.0 接口开发步骤
  17. 关于ContentProviderContentResolver的学习与使用
  18. jQuery点击网页任意空白区域隐藏div
  19. 【CF 463F】Escape Through Leaf
  20. python实战系列之python变量

热门文章

  1. mysql 文件放网络盘_MySQL InnoDB的磁盘文件及落盘机制
  2. c语言排序算法 应用与实现,基于C语言排序算法改进与应用.doc
  3. Oracle使用ini启动,python操作ini类型配置文件的实例教程
  4. Flask 报错 RuntimeError: No application found. Either work inside a view function or push an applicati
  5. (2) java项目中用redis
  6. (1) 漂亮的日期控件
  7. [Visual Studio+TFS--强大的项目管理工具]
  8. python新手如何度过小白期,不再当菜鸟程序员?
  9. anaconda3 win7_重装系统win7
  10. 一次短信验证码攻击的应急响应