【bzoj2226】[Spoj 5971] LCMSum 欧拉函数
题目描述
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 欧拉函数相关推荐
- bzoj2226[Spoj 5971] LCMSum
题目链接:bzoj2226 题目大意: 多组数据.给定n,求∑ni=1lcm(i∗n)\sum_{i=1}^{n}lcm(i*n). 1 <= T <= 300000,1 <= n ...
- BZOJ 2226 [Spoj 5971] LCMSum 最大公约数之和 | 数论
BZOJ 2226 [Spoj 5971] LCMSum 这道题和上一道题十分类似. \[\begin{align*} \sum_{i = 1}^{n}\operatorname{LCM}(i, n) ...
- poj2154-color-polyan次二面体+欧拉函数优化
N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...
- hdu 1286( 欧拉函数 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...
- 费马定理中值定理_数论-欧拉函数、欧拉定理
欧拉函数 积性函数 满足 ( 互质) 定义 对于正整数 ,欧拉函数是小于等于 的所有数中与 互质的数的 个数. 欧拉函数是积性函数(这个证明不是很显然,这个链接里面有很多种证明方法) 记作: 公式 , ...
- poj2154(Polya+欧拉函数优化模版)
#include <cstdio> #include <cstring> #include<iostream> using namespace std; const ...
- 【数学专题】约数个数与欧拉函数
整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...
- 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )
整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn)) ②求[1,n]之间每个数的质因数 ...
- bzoj 1409 Password 矩阵快速幂+欧拉函数
可以发现,该数组的mi就是斐波那契数列 所以要矩阵快速幂搞出第n位 但是斐波那契数列上涨的很快,这就需要欧拉定理了 p^phi(q)%q=1(gcd(p,q)==1) p是素数,所以可以用 然后需要5 ...
最新文章
- 分布式session之token解决方案实现
- 亚洲杯:打平韩国即可小组第一 国足会继续带来惊喜吗?
- 抽象类与接口 day-11.2
- [Linux]消息队列
- “□” 表情无法在 Android 设备显示? 快试试 EmojiCompact 表情兼容库
- Python队列完成多进程间通信
- 零中频接收机频率转换图_【鼎阳硬件智库原创︱频谱分析仪】频谱分析仪应用解惑之频率分辨力...
- Javascript实现获取及设置光标位置的方法
- php soap 超时,PHP SoapClient超时
- 想要与北上争雄,深圳还有哪些课要补?| DT城数
- xp计算机找不到音量调节,电脑音量图标消失无法调整声音大小的解决方案
- Apache-WebLogic plub-in插件的安装
- 服务网格——后 Kubernetes 时代的微服务(前言)
- 桃飘火焰焰,梨堕雪漠漠。(排序 贪心
- 七周成为数据分析师 | 数据库
- 如果给video标签动态写入视频?
- 知乎、百度会被ChatGPT取代吗?百度文心一言胜算如何
- 【每天学点管理】——员工激励-参与策略
- [一个程序员的人文素养系列]这世界如露水般短暂俳句摘抄
- 大专学历计算机专业高薪工作,大专毕业一年,工资三千多,计算机行业高薪路茫茫(下)...