展開
題目背景
smart最近沉迷於對約數的研究中。
題目描述
對於乙個數x,函式f(x)表示x所有約數的和。例如:f(6)=1+2+3+6=12。對於乙個x,smart可以很快的算出f(x)。現在的問題是,給定兩個正整數x,y(x輸入格式
輸入檔案僅一行,兩個正整數x和y(x輸出格式
輸出只有一行,為f(x)+f(x+1)+……+f(y)的值。
輸入輸出樣例
輸入 #1複製
2 4輸出 #1複製
14輸入 #2複製
123 321
輸出 #2複製
72543
說明/提示
對於20%的資料有1≤x<y≤105。
對於60%的資料有1≤x<y≤1*107。
對於100%的資料有1≤x<y≤2*109。
思路:
同c - fear factoring gym - 101615c(求約數和,除法分塊)
暴力的思路是:對於 i (i ≤ n),存在n / i個i,和為n / i * i。
除法分塊的意思是,n / i 的值對於連續的i都是確定的,而且這個連續i的右邊界為n / (n / i)。
那麼對於這個連續的範圍,約數是等差遞增的,而且數目是相同的。
結果就是等差數列求和再乘上數目。
等差數列求和為 (l + r) * (r - l + 1) * n / i.
#include
using
namespace std;
typedef
unsigned
long
long ll;
ll cal
(ll n)
return ans;
}int
main()
洛谷 P2424 約數和
1s 128mb smart最近沉迷於對約數的研究中。對於乙個數x,函式f x 表示 x 所有約數的和。例如 f 6 1 2 3 6 12 對於乙個 x smart可以很快的算出f x 現在的問題是,給定兩個正整數x,y x,smart希望盡快地算出f x f x 1 f y 的值,你能幫助smar...
洛谷P1734 最大約數和
選取和不超過s的若干個不同的正整數,使得所有數的約數 不含它本身 之和最大。輸入格式 輸入乙個正整數s。輸出格式 輸出最大的約數之和。輸入樣例 1 複製11 輸出樣例 1 複製9 樣例說明 取數字4和6,可以得到最大值 1 2 1 2 3 9。資料規模 s 1000 01揹包,預處理出每個數的約數和...
洛谷P4178 Tree 分塊
給你一棵樹,以及這棵樹上邊的距離,問有多少對點它們兩者間的距離小於等於kkk。這道題是應該加強資料了。當然如果這道題不打算做點分治模板題的話可以不用 o n nlog n o n sqrt n log sqrt n o nn logn 分塊在洛谷優秀的o2o2 o2下過了。我們假設1 11為樹根,d...