题目描述

Given n, calculate the sum LCM(1,n) + LCM(2,n) + .. + LCM(n,n), where LCM(i,n) denotes the Least Common Multiple of the integers i and n.

输入

The first line contains T the number of test cases. Each of the next T lines contain an integer n.

输出

Output T lines, one for each test case, containing the required sum.

样例输入

3
1
2
5

样例输出

1
4
55


题解

欧拉函数

其中需要解释一下最后一个式子的推导过程:

有一个结论:当n>2时,小于n且与n互质的数的和等于$\frac{n·\varphi(n)}2$,因为若k与n互质,则n-k一定也与n互质。

当n=2时这个关系式在数值上成立,当n=1时不成立,需要特殊处理。

所以可以先筛欧拉函数,然后枚举d,将1~n所有能够整除d的数的答案加上$\frac{d·\varphi(d)}2$。最后输出答案时再加一点处理即可。

时间复杂度为调和级数的$O(n\ln n)$

#include <cstdio>
#include <algorithm>
#define N 1000010
using namespace std;
typedef long long ll;
const int m = 1000000;
int phi[N] , prime[N] , tot;
ll f[N];
bool np[N];
int main()
{int i , j , T , n;for(i = 2 ; i <= m ; i ++ ){if(!np[i]) phi[i] = i - 1 , prime[++tot] = i;for(j = 1 ; j <= tot && i * prime[j] <= m ; j ++ ){np[i * prime[j]] = 1;if(i % prime[j] == 0){phi[i * prime[j]] = phi[i] * prime[j];break;}else phi[i * prime[j]] = phi[i] * (prime[j] - 1);}}for(i = 2 ; i <= m ; i ++ )for(j = i ; j <= m ; j += i)f[j] += (ll)i * phi[i] / 2;scanf("%d" , &T);while(T -- ) scanf("%d" , &n) , printf("%lld\n" , (f[n] + 1) * n);return 0;
}

转载于:https://www.cnblogs.com/GXZlegend/p/7015873.html

【bzoj2226】[Spoj 5971] LCMSum 欧拉函数相关推荐

  1. bzoj2226[Spoj 5971] LCMSum

    题目链接:bzoj2226 题目大意: 多组数据.给定n,求∑ni=1lcm(i∗n)\sum_{i=1}^{n}lcm(i*n). 1 <= T <= 300000,1 <= n ...

  2. BZOJ 2226 [Spoj 5971] LCMSum 最大公约数之和 | 数论

    BZOJ 2226 [Spoj 5971] LCMSum 这道题和上一道题十分类似. \[\begin{align*} \sum_{i = 1}^{n}\operatorname{LCM}(i, n) ...

  3. poj2154-color-polyan次二面体+欧拉函数优化

    N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...

  4. hdu 1286( 欧拉函数 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...

  5. 费马定理中值定理_数论-欧拉函数、欧拉定理

    欧拉函数 积性函数 满足 ( 互质) 定义 对于正整数 ,欧拉函数是小于等于 的所有数中与 互质的数的 个数. 欧拉函数是积性函数(这个证明不是很显然,这个链接里面有很多种证明方法) 记作: 公式 , ...

  6. poj2154(Polya+欧拉函数优化模版)

    #include <cstdio> #include <cstring> #include<iostream> using namespace std; const ...

  7. 【数学专题】约数个数与欧拉函数

    整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...

  8. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )

    整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn​)) ②求[1,n]之间每个数的质因数 ...

  9. bzoj 1409 Password 矩阵快速幂+欧拉函数

    可以发现,该数组的mi就是斐波那契数列 所以要矩阵快速幂搞出第n位 但是斐波那契数列上涨的很快,这就需要欧拉定理了 p^phi(q)%q=1(gcd(p,q)==1) p是素数,所以可以用 然后需要5 ...

最新文章

  1. 分布式session之token解决方案实现
  2. 亚洲杯:打平韩国即可小组第一 国足会继续带来惊喜吗?
  3. 抽象类与接口 day-11.2
  4. [Linux]消息队列
  5. “□” 表情无法在 Android 设备显示? 快试试 EmojiCompact 表情兼容库
  6. Python队列完成多进程间通信
  7. 零中频接收机频率转换图_【鼎阳硬件智库原创︱频谱分析仪】频谱分析仪应用解惑之频率分辨力...
  8. Javascript实现获取及设置光标位置的方法
  9. php soap 超时,PHP SoapClient超时
  10. 想要与北上争雄,深圳还有哪些课要补?| DT城数
  11. xp计算机找不到音量调节,电脑音量图标消失无法调整声音大小的解决方案
  12. Apache-WebLogic plub-in插件的安装
  13. 服务网格——后 Kubernetes 时代的微服务(前言)
  14. 桃飘火焰焰,梨堕雪漠漠。(排序 贪心
  15. 七周成为数据分析师 | 数据库
  16. 如果给video标签动态写入视频?
  17. 知乎、百度会被ChatGPT取代吗?百度文心一言胜算如何
  18. 【每天学点管理】——员工激励-参与策略
  19. [一个程序员的人文素养系列]这世界如露水般短暂俳句摘抄
  20. 大专学历计算机专业高薪工作,大专毕业一年,工资三千多,计算机行业高薪路茫茫(下)...

热门文章

  1. [bootStrap]代码块出现横线滚动条
  2. OpenCV——素描
  3. git 远程分支创建与推送
  4. [转]谨以此文献给才毕业2--5年的朋友
  5. 如何在开盘15分钟内发现当天黑马
  6. 关于node.js和C交互的方法
  7. 使用docker部署lnmp
  8. Tomcat多实例和负载均衡
  9. idea连接mysql例子_IDEA连接MySQL数据库,并把数据库数据在浏览器中进行展示
  10. 媒体声音|阿里云数据库:一站式全链路数据管理与服务,引领云原生2.0时代