求兩個數的最大公約數和最小公倍數
阿新 • • 發佈:2018-07-05
esp long cout gcd urn clas 代碼 () else
求最大公約數利用輾轉相除法:
long long gcd(long long a,long long b) { if(b==0) return a; else return gcd(b,a%b); }
求最小公倍數時,利用兩數的乘積除以這兩個數的最大公約數即可:
long long lcm(long long a,long long b) { long long tmp=a*b; tmp=tmp/gcd(a,b); return tmp; }
完整代碼如下,輸入兩個數n和m,輸出這兩個數的最大公約數和最小公倍數:
#include<iostream> using namespace std; long long gcd(long long a,long long b) { if(b==0) return a; else return gcd(b,a%b); } long long lcm(long long a,long long b) { long long tmp=a*b; tmp=tmp/gcd(a,b); return tmp; } int main() { long long n,m; cin>>n>>m; cout<<gcd(n,m)<<endl<<lcm(n,m); return 0; }
求兩個數的最大公約數和最小公倍數