ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - d860: NOIP2001 2.最大公約數(shù)和最小公倍數(shù)問題 解題心得

Not In My Back Yard | 2018-12-30 19:03:15 | 巴幣 0 | 人氣 123

題目連結(jié):


題目大意:
給定兩正整數(shù) x 、 y( 2 ≦ x ≦ 100, 000 、 2 ≦ y ≦ 1, 000, 000 )。求滿足:以 x 為最大公因數(shù),且以 y 作為最小公倍數(shù)的正整數(shù)數(shù)對(P, Q)有多少組?



範(fàn)例輸入:
3 60



範(fàn)例輸出:
4



解題思維:
因為要分別以 x 、 y 作為最大公因數(shù)(GCD)和最小公倍數(shù)(LCM),因此正整數(shù)數(shù)對(P, Q)的 P 、 Q 之值必定介於 x ~ y 之間。

仔細觀察,我們可以發(fā)現(xiàn) P ÷ x 必與 Q ÷x 互質(zhì),因為不互質(zhì)的話,就不是以 x 作為GCD了;而且(P ÷ x)×(Q ÷x) = (y ÷ x)。

也就是我們把問題簡化為:求有多少對(P ÷ x, Q ÷x)。且數(shù)對數(shù)量必為 2 ^ N ,其中 N 為 y ÷ x的相異質(zhì)因數(shù)之個數(shù)。

因此,我們只需去求出 y ÷ x 的相異質(zhì)因數(shù)個數(shù) N 。最後,輸出 2 ^ N 即可。

此外,判斷一下給定的 x 是否 ≦ y 。若否,此時要輸出 0 。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作