#include <stdio.h>
int num[10000]={0};
int num2[10000]={0};
int max(int n, int m); //최대공약수를 구하는 함수
void line(int c); //내림차순으로 정렬하는 함수
/*void pr(int c)
{
int i;
for(i=0; i<c; i++)
{
printf("%d ", num2[i]);
}
printf("\n");
}*/
int main(void)
{
int n, m, a, cnt;
scanf("%d %d", &n, &m); //가로 길이 : n, 세로 길이 : m
a=max(n, m);
cnt=(n/a)*(m/a);
printf("%d", cnt);
return 0;
}
int max(int n, int m)
{
int i, j, a, mm=1, c=0;
if(n>m) //무조건 m이 더 큰 수이도록 만들기
{
a=n;
n=m;
m=a;
}
for(i=1; i<=(n/2); i++) //n의 약수 구하기
{
if(i==num[c-1])
break;
if(n%i==0)
{
num[c++]=i;
if(i!=n/i)
num[c++]=n/i;
else
break;
}
}
line(c);
for(i=0; i<c; i++)
{
if(m%num2[i]==0)
{
mm=num2[i];
break;
}
}
return mm;
}
void line(int c)
{
int i, temp;
c--;
for(i=0; i<=c; i++)
{
if(i%2==0)
{
num2[c-(i/2)]=num[i];
}
else
{
num2[i/2]=num[i];
}
}
}
2018.01.20 10:31
정올 - 실력키우기 - 타일교체(2810)
조회 수 219 추천 수 0 댓글 0