tyvj 1392 shlqsh數 約數個數和

2021-07-24 16:07:52 字數 635 閱讀 7472

輸入兩個自然數,輸出他們之間所有數的約數個數之和

輸入格式

兩個自然數x和y(0<=x,y<=10000000)

輸出格式

乙個數,即x與y之間所有數的約數個數之和

測試樣例1

輸入2 5

輸出9

備註f(i)表示i的約數的個數

s=f(2)+f(3)+f(4)+f(5)=2+2+3+2=9

考慮在1-x範圍內,每個數的約數只可能是1-x,並且對於這個範圍內的每個數i來說,能夠整除i的那麼i就是它的約數,x div i的結果就是以i為約數的在此範圍內的數的個數,所以只需要列舉i從1到x然後累加x div i那麼就是1-x的shlqsh數了,那麼shlqsh(y)-shlqsh(x-1)就是答案

program df;

var i,j,n,m,x,y,z,k,t,s:longint;

begin

s:=0;

readln(n,m);

for i:=1 to m do

s:=s+m div i;

n:=n-1;

for i:=1 to n do

s:=s-n div i;

writeln(s);

end.

洛谷 P1392 取數

題面 在做這道題前,先要會他的弱化版 實際一模一樣,只是愚蠢的洛谷評測級別差了一檔 睿智如姬無夜 弱化版 弱化版 實際只是把矩陣行數改成兩行而已 sol 先排序,後考慮乙個序列a 1 b 1 a 2 b 1 a 3 b 1 a n 1 b 1 a n b 1 顯然對於上乙個序列而言 a 1 b 1 ...

洛谷P1392 取數 堆

題目傳送門 在乙個n行m列的數陣中,你須在每一行取乙個數 共n個數 並將它們相加得到乙個和。對於給定的數陣,請你輸出和前k小的取數方法。輸入格式 第一行,三個數n,m,k。第2 n 1行,每行m個正整數 輸出格式 一行共k個數,代表在每一行取乙個數前k小的加和 輸入樣例 1 複製 3 3 2 1 2...

TYVJ1414(三取方格數)

演算法 dp 與二取方格數類似,設f i,j,k,l 為走了i步 初始為1步 後,第1次取數在j行,第2次取數在k行,第3次取數在l行的最大值。然後就是類似的轉移,注意這裡一共有8種轉移情況,都要考慮到,設j為當前走到的行,加上j行的值,然後去判斷與k,l是否重複,不重複還要加上它們的值。走i步最多...