c++---求最大公約數與最小公倍數
阿新 • • 發佈:2018-11-07
1.輾轉相除法求最大公約數
輾轉相除法, 又名歐幾里德演算法(Euclidean algorithm),是求最大公約數的一種方法。它的具體做法是:用較小數除較大數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數。
2.求最小公倍數
兩個整數a,b
a*b=(a,b最大公約數)*(a,b最小公倍數)
#include<iostream> using namespace std; int gcd(int a,int b) //greatest common divisor { if(a==0 || b==0) return 0; int res; if(b>a) //確保a>b swap(a,b); while(a%b) { res=a; a=b; b=res%b; } return b; } int main() { int a,b; cin>>a>>b; cout<<"最大公約數為:"<<gcd(a,b)<<endl; cout<<"最小公倍數為:"<<a*b/gcd(a,b)<<endl; return 0; }