1040 最大公約數之和 51nod

2021-09-20 04:14:07 字數 795 閱讀 9447

陣法閃爍——召喚題目

【思路】:本來是tle的,但看了討論區,發現要用到尤拉函式(在數論中用於求解 [ 1 , n ] 中與 n  互質數個數 的函式),但尤拉開頭的東東就有挺多的,這裡用到的是單個數的那種尤拉函式的板子,這裡給你乙個通式:

求單個數的尤拉函式的板子:

//本題資料較大,所以板子用long long

typedef long long ll;

ll eular(ll m)

} if(m>1)

res-=res/m;

return res;

}

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

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

收起

1個數n(n <= 10^9)
公約數之和
6
15
ac**:

#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const ll maxn=1e6+7;

ll eular(ll m)

} if(m>1)

res-=res/m;

return res;

}int main()

} cout<

return 0;

}

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