素因子集合

題目詳情

小強最近在學初等數論,老師給他們出了一個課後習題,那就是給你兩個正整數A,B(0<A,B<2^60),判斷他們的素因子集合是否相同,小強剛接觸數論,想了好一會還是沒能想出來,你能幫助他嗎?

輸入描述:

輸入包含多組測試數據,每組測試數據包含兩個正整數A,B,以文件結束。

輸出描述:

對於每組測試數據如果A和B的素因子集合相同則輸出“YES”,否則輸出“NO”。



答題說明

輸入樣例:

2 8

4 9

10 50

輸出樣例:

YES

NO

YES


思路:這個問題可分解爲a的素數因子集合是否屬於b的和b的素數因子集合是否屬於a的,對於a的素數因子集合是

否屬於b的,我們可以不斷的求a與b的最大公約數,然後整除a,直到a等於1(即“yes”),或者最大公約數爲1

(即“no”),求最大公約數我用的是二進制歐幾里得什麼的(我也不知道叫什麼名字,反正知道怎麼用),好

像蠻快得。


代碼如下:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章