数论题目 Longge的问题
本文最后更新于:2024年9月13日 早上
题目描述
给定整数N,求$ \sum_{ i = 1 } ^ n gcd(i,n)$。
输入格式 Input Format
一个整数$N。N<=2 ^ {32} $
输出格式 Output Format
输出一个整数,表示满足条件的数对数量.
输入:
6
输出:
15
想法
由题意可知,输入一个n,输出1~n所有数与n的最大公约数的个数和。
乍一看很难,实际上并不是,设k=gcd(i,n),则 $ \frac {i}{k} $ 与 $ \frac {n}{k} $互质,
我们可以通过枚举k来得到所有与n的最大公约数为k的数
——也就是除以k之后与 $ \frac {n}{k} $ 互质,也就是说$ \frac {n}{k}$的欧拉函数值即为与n最大公约数为k的数的数目。
之后用sum来累加$ k * \phi ( \frac {n}{k} ) $就是答案。
PS:如果首先预处理的话,则会爆空间,所以说只能找到一个k再找$ \frac{n}{k} $的欧拉函数值(蜜汁不超时)。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!