51nod 1040 最大公約數之和

2022-02-27 09:24:12 字數 985 閱讀 2234

rihkddd基準時間限制:1 秒空間限制:131072 kb分值:80難度:5級演算法題

給出乙個n,求1-n這n個數,同n的最大公約數的和。比如:n = 6

1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 = 15

input

1個數n(n <= 10^9)
output

公約數之和
input示例

6
output示例

15
analysis分析這道題思考題

結論:為什麼呢?

主要思路:列舉最大公約數,然後求出同個最大公約數的數字的數量

然後把這些加起來就行了

最後需要額外加上 1 和 n 的情況

那麼對於每個最大公約數,只要除去這個最大公約數,那麼數 a 和 n 就互質了

因此這個數量就是

那麼對於每乙個 n 的因數,我們都這麼疊加一下就行。

code**

1 #include2 #include3

#define ll long long

4using

namespace

std;56

ll x;78

ll euler(ll x)

18 }if(x > 1) ans *= x-1;19

return

ans;20}

2122

intmain()cout <

3334

return0;

35 }

qwq 尤拉函式你好啊

51nod 1040 最大公約數之和

1040 最大公約數之和 rihkddd 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 給出乙個n,求1 n這n個數,同n的最大公約數的和。比如 n 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 15 input 1個數n ...

51nod1040最大公約數之和

題目大意 給出乙個n,求1 n這n個數,同n的最大公約數的和。比如 n 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 15 input 1個數n n 10 9 output 公約數之和 思路 將n分解質因子,每個質因子貢獻的是多少,累加求和。每個質因子貢獻的次數...

51Nod 1040 最大公約數之和

分析題目可以發現,兩個數gc d a,b x 則等價於gc d ax bx 1,問題就可以轉化為滿足gc d nx ix 1的i的個數,對答案貢獻就是個數乘上gc d n,i 很容易可以想到尤拉函式,因為 n 是小於等於n的數中與n互質的數的數目,gc d nx ix 1的i的個數就等於 nx 那麼...