//객체지향 금 123
//2012 04.13 3번
#include<iostream>
using namespace std;
int rest(int a, int b) //나머지를 구하는 함수
{ return a%b; };
int gcd(int a, int b) //gcd를 구하는 함수
{ int tmp;
do //나머지가 0일때까지 b와 나머지와의 gcm을 계속 구한다.
{ cout << a << "%" << b << " = " << rest(a,b) << endl;
tmp=a; a=b; b=rest(tmp,b); //tmp에 a를 임시로 저장하고, a에 b를 대입, b에 rest(tmp,b)를 대입한다.
}while(b !=0 );
return a; //나머지가 0이 되었을때, b를 a에 대입하였으므로 a를 리턴한다.
};
int lcm(int a, int b) //lcm을 구하는 함수
{
return a*b/gcd(a,b); //gcm함수로 구한 gcm값을 a*b에 나누어 리턴한다.
};
int main()
{
//a= qb + rest
int a,b,tmp; //a,b = 입력받는 두 수. tmp a를 저장하는 임시변수
cin >> a >> b;
cout << "gcd = " << gcd(a,b) << endl << "lcm = " << lcm(a,b) <<endl ;
//gcd 와 lcm 함수의 호출.
return 0;
}