思想:迭代法,辗转相除。
设两数为m,n。
1. r=n%m;
2. n=m;
3. m=r;
4. 重复相除,直到余数为零,此时的除数m即为最大公约数。
5. 最小公倍数为:m*n/最大公约数,记得保存一下m和n的初始值。
#include <iostream>
using namespace std;
int main(){
int n,m,r;
cin>>n>>m;
int k1=m,k2=n;
while(n%m!=0){
r=n%m;
n=m;
m=r;
}
cout<<m;//最大公约数
cout<<k1*k2/m; //最小公倍数
}