hdu 4497 最大公約數和最小公倍數

2021-06-18 01:53:18 字數 902 閱讀 9723

今天做2013acm-icpc 吉林通化的題,結果是很差,以前每次做完鋼牛都會說他自己越來越弱了,而我只是想說,我似乎一直

都是這麼弱,比賽的時候看到了這題求最大公約數和最小公倍數,分析了一半然後覺得可麻煩,其實還是自己的思路不成熟,然後就在那裡動想一下西想一下,每次都是思路走了一半之後自己就停車了,結果一下午就做了一題,似乎最簡單的第一題也是wa了無數次沒有ac的。

思路:對於n和m,如果m%n!=0,那麼肯定是不存在的。

然後對於x=m/n進行分析,對與x進行質因數分解,假設其中的乙個質因數為y,起指數為t,那麼要使的三個數關於質因數y的最小公倍數為1最大公約數為y^t,那麼三個數中關於y的指數一定的存在0和t,分情況討論,如果三個數不同,則有6*(-1)種情況,還有的就是兩個相同的,那麼有六種情況,總共有6*t種情況,注意要用long long

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define rep(i,n) for(int i=0; i=(m); --i)

#define ll long long

#define arc(a) ((a)*(a))

#define inf 100000

#define exp 0.000001

#define n 400000

ll n,m;

ll a[n];

ll ans;

ll fun(ll x)

rep(i,l)

sum*=a[i]*6;

return sum;

}int main()

ll x=m/n;

ans=fun(x);

cout<

最大公約數

1.執行最大公約數的常用演算法,並新增異常處理模組 如輸入非法等 在基礎程式的基礎上,可以考慮手動輸入所有數字或者利用隨機數產生數字,分別加入異常處理模組。注 隨機數的產生方法 srand 的作用是提供乙個種子。然後呼叫rand 其格式為int rand void 它會根據提供給srand 的種子值...

最大公約數

最大公因數 greatest common divisor 也稱最大公約數 最大公因子,指兩個或多個整數共有約數中最大的乙個。a,b的最大公約數記為 a,b 同樣的,a,b,c的最大公約數記為 a,b,c 多個整數的最大公約數也有同樣的記號。求最大公約數有多種方法,常見的有質因數分解法 短除法 輾轉...

最大公約數

求兩數的最大公約數 簡單嗎?簡單!用多種方法求,可以嗎?emmmmm.應該可以吧?相信絕大多數人都知道求最大公約數的如下 所示的這種方法 include includeint commondivisor int x,int y min return min int main 先判斷兩個數的大小,將較...