C++ 实现最小公倍数

最小公倍数=两数乘积/最大公约数
求最小公约数可以使用欧得几里算法(也就是传说中的辗转相除法)

int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); }

【C++ 实现最小公倍数】 也可以使用(这两个方法的原理都是一样的)
int gcd(int x,int y) { while(x!=y) {if(x>y) x=x-y; else y=y-x; } return x; //辗转相除法 }

有时候两数乘积会超过整数的范围,由此我们可以调整一下顺序:a/gcd(a,b)*b
先除一下,这样就可以避免在一定程度上避免溢出
#include #include #include #include using namespace std; int gcd(int,int); int main(int argc,char *argv[]) { int x,y; while(cin>>x>>y) { cout<y) x=x-y; else y=y-x; } return x; //辗转相除法 }






    推荐阅读