#include <iostream> using namespace std; /* 最大公因数×最小公倍数=两数的乘积 */ /* *函数功能:求最大公约数(辗转相除) */ int gcd(int x, int y) { if(0 == y) return x; else return gcd(y, x%y); } /* *函数功能:求最小公倍数(短除法) */ int lcm(int x, int y) { int n = gcd(x, y); if(1 == n) return x*y; else return n * lcm(x/n, y/n); } /* *函数功能:求最小公倍数(短除法) *(1)利用辗除法或其它方法求得最大公约数 (2)最小公倍数等于两数之积除以最大公约数。 */ int lcm1(int x, int y) { int n = gcd(x, y); return (x*y) / n; } int main() { int a = 10; int b = 15; cout<<gcd(a, b)<<" "<<lcm(a, b)<<" "<<lcm1(a, b)<<endl; system("pause"); }