【雜題】[51Nod 1238] 最小公倍數之和 V3【數論】【杜教篩】
Description
求
i=1∑nj=1∑nlcm(i,j)
n≤1010
Solution
將
lcm拆開
原式化為
i=1∑nj=1∑ngcd(i,j)ij
令
d=gcd(i,j),i=i/d,j=j/d
方便起見以下的除法預設為下取整
=d=1∑ndi=1∑dnj=1∑dnij[gcd(i,j)=1]
考慮對稱性,有
=d=1∑nd×⎝⎛2⎝⎛i=1∑dnij=1∑ij[gcd(i,j)=1]⎠⎞−1⎠⎞
(因為1被計算了2次,因此最後要-1)
我們知道,小於等於n且與n互質的數的和是
2φ(n)∗n(考慮一個小於等於n且與n互質的數i,顯然n-i也與n互質,這樣總共有
2φ(n)組)
1除外,小於等於1且與1互質的數的和是1,因此還要加上一個
21
因此又有
=d=1∑nd×⎝⎛2⎝⎛i=1∑dn2φ(i)∗i2⎠⎞−1+21×2⎠⎞
=d=1∑nd×i=1∑dnφ(i)×i2
設
f(n)=φ(n)⋅n2
現在要做的就是求
f(n)的字首和
S(n)
考慮杜教篩
我們發現 f∗id2=id3(其中 ∗為狄利克雷卷積),即
相關推薦
【雜題】[51Nod 1238] 最小公倍數之和 V3【數論】【杜教篩】
Description 求 ∑ i
[51Nod 1238] 最小公倍數之和 V3【數論】【杜教篩】【未完成】
Description 求 ∑i=1n∑j=1nlcm(i,j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n} lcm(i,j)i=1∑nj=1∑nlcm(i,
【51nod】1238 最小公倍數之和 V3
sum ron 前綴和 body var rac style str 算法 【題意】給定n,求Σi=1~nΣj=1~n lcm(i,j),n<=10^10。 【算法】杜教篩 【題解】 $ans=\sum_{i=1}^{n}\sum_{j=1}^{i}lcm(i,j)$
[國家集訓隊]Crash的數字表格/JZPTAB和51Nod1238最小公倍數之和V3題解-數論
[國家集訓隊]Crash的數字表格【地址BZOJ2145地址Luoguo】 題意簡述 給你兩個正整數 n ,
51nod1238 最小公倍數之和V3【杜教篩】
題意: 求 ∑ i
51nod 1190 最小公倍數之和 V2
() lld ray 一個數 spl sin .com 一起 輸入 給出2個數a, b,求LCM(a,b) + LCM(a+1,b) + .. + LCM(b,b)。 例如:a = 1, b = 6,1,2,3,4,5,6 同6的最小公倍數分別為6,6,6,12,30,
51nod-1363: 最小公倍數之和
【傳送門:51nod-1363】 簡要題意: 給出一個數n,求出1到n的數與n的最小公倍數的和 多組資料 題解: 理所當然推柿子 原題相當於求$\sum_{i=1}^{n}\frac{i*n}{gcd(i,n)}$ 先列舉d=gcd(i,n),然後化簡得到$$n*\s
51nod1238 最小公倍數之和 V3
clas i++ ble optimize opc 51nod bit return n+1 題意:求\(\sum_{i=1}^n\sum_{j=1}^n\frac{i*j}{gcd(i,j)}\) 題解:先枚舉gcd,\(\sum_{d=1}^nd\sum_{i=1}^{
51nod1238. 最小公倍數之和 V3(莫比烏斯反演)
題目連結 https://www.51nod.com/Challenge/Problem.html#!#problemId=1238 題解 本來想做個杜教篩板子題結果用另一種方法過了...... 所謂的“另一種方法”用到的技巧還是挺不錯的,因此這裡簡單介紹一下。 首先還是基本的推式子: \[\be
[51Nod1238]最小公倍數之和 V3[杜教篩]
題意 給定 \(n\) ,求 \(\sum_{i=1}^n \sum_{j=1}^n lcm(i,j)\)。 \(n\leq 10^{10}\) 分析 推式子 \[\begin{aligned} ans &= 2\sum_{i=1}^n\sum_{j=1}^ilcm(i,j)-\sum_
51Nod1238最小公倍數之和V3的另一種做法
前面的講解【Blog地址】 題目意思:求 ∑ i
51nod1238 最小公倍數之和 V3 莫比烏斯函式 杜教篩
題意:求\(\sum_{i = 1}^{n}\sum_{j = 1}^{n}lcm(i, j)\). 題解:因為是用的莫比烏斯函式求的,所以推導比大部分題解多。。。而且我寫式子一般都比較詳細,所以可能看上去很多式子,實際上是因為每一步都寫了,幾乎沒有跳過的。所以應該都可以看懂的。 末尾的\(e\)函式
51nod1238 最小公倍數之和 V3 莫比烏斯函數 杜教篩
處理 推導 its 數組 sca 統計 最小公倍數 define clas 題意:求\(\sum_{i = 1}^{n}\sum_{j = 1}^{n}lcm(i, j)\). 題解:因為是用的莫比烏斯函數求的,所以推導比大部分題解多。。。而且我寫式子一般都比較詳細,所
51nod1238 最小公倍數之和 V3(莫比烏斯反演)
ans || temp using 求一個 return logs its put 題意 題目鏈接 Sol 不想打公式了,最後就是求一個 \(\sum_{i=1}^n ig(\frac{N}{i})\) \(g(i) = \sum_{i=1}^n \phi(i) i^2\)
【51nod 1238】最小公倍數之和
題意:求 ∑ i =
51nod 1222 最小公倍數計數【莫比烏斯反演】
tdi .html blog pri using ret n) can code 參考:https://www.cnblogs.com/SilverNebula/p/7045199.html 所是反演其實反演作用不大,又是一道做起來感覺詭異的題 轉成前綴和相減的形式 \[
【51nod】1227 平均最小公倍數
tdi name source n) ++ RF getc 故事 oid 題解 這個故事告訴們數論函數不要往分式上跑,你推不出來 好久沒推式子了這麽明顯的轉化我都忘了= = 首先\(A(n) = \frac{1}{n} \sum_{i = 1}^{n} \frac{i *
51nod 1012最小公倍數LCM
out 空格 can urn 個數 c++ type scan span 輸入2個正整數A,B,求A與B的最小公倍數。 Input 2個數A,B,中間用空格隔開。(1<= A,B <= 10^9) Output 輸出A與B的最小公倍數。 Input示
51nod 1012 最小公倍數LCM
輸入2個正整數A,B,求A與B的最小公倍數。 收起 輸入 2個數A,B,中間用空格隔開。(1<= A,B <= 10^9) 輸
水題 第三站 最小公倍數
看到這個題,完全是暴力的想法,後來超時稍稍做了寫優化,然而還是超時。原來用到了最大公約數的求法,就積累下這個小知識點。 int gcd (int x, int y) { while(x!=y) { if(x>y) x=x-