51nod 1040 最大公約數之和

2022-04-30 07:12:09 字數 715 閱讀 9843

給出乙個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

—————————————————————————

這道題列舉 約數d 約數的貢獻就是

$\sum_\phi(\frac)d$

因為和n的最大公約數是d的 除以d之後就一定是和n/d 互質的

#include#include

#include

#define ll long long

using

namespace

std;

int v,n,h[2507

],cnt;

ll ans;

ll f(

intx)

intmain()

if(v!=1) h[++cnt]=v;

for(int i=1;i*i<=n;i++)if(n%i==0

)printf(

"%lld\n

",ans);

return0;

}

view code

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 那麼...