https://www.acmicpc.net/problem/2609

#include <stdio.h>
int main()
{
int x,y,z,r,t,m;
scanf("%d %d",&x,&y);
z=x;
r=y;
if(z%r==0) // r이 z에 나누어 질때는 r이 최대공약수고 최소공배
{ 수를 구하는 식을 사용하면 된다.
printf("%d",r);
m=xy/r;
printf(" %d",m);
}
else if(r%z==0) // z가 r에 나누어 질때는 z가 최대공약수이다.
{
printf("%d",z);
m=xy/z;
printf(" %d",m);
}
else if(z%r!=0) // 위의 조건 모두가 아니라면
{
while(z%r!=0){ // 나누어질때까지 줄인다.
t=z%r;
z=r;
r=t;
}
printf("%d\n",t);
m=x*y/t;
printf("%d",m);
}
return 0;
}
최소공배수를 구하는 식은 하나의 수 * 나머지 수에 최대공약수를 나눈 값이다.