1. 程式人生 > >計算兩個數的最大公約數和最小公倍數(歐幾裏得算法)

計算兩個數的最大公約數和最小公倍數(歐幾裏得算法)

return span pan color 公約數 兩個 個數 style 歐幾裏得

利用歐幾裏得算法(即輾轉相除法)計算兩個整數的最大公約數

#include<iostream>
#include<algorithm>
using namespace std;
int gcb(int a,int b)
{
    if(b==0)
        return a;
    else
        return gcb(b,a%b);
}
int main()
{
    int a,b;
    int p,q;
    while(cin>>a>>b)
    {
        p = gcb(max(a,b),min(a,b)); //
註意大小關系,gcb函數的第一個參數應該比第二個參數大 q = a/p*b; //最小公倍數,為防止溢出,應該先除後乘 cout<<p<<" "<<q<<endl; } return 0; }

計算兩個數的最大公約數和最小公倍數(歐幾裏得算法)