# include <stdio.h>
# include <math.h>
int getEqualValue ( int c, int d)
{
int e;
e = c - d;
if ( e == d)
{
return e;
}
else if ( e > d)
{
e = getEqualValue ( e, d) ;
}
else if ( e < d)
{
e = getEqualValue ( d, e) ;
}
return e;
}
int main ( )
{
int m;
int n;
int result;
int i = 0 ;
int minResult;
puts ( "输入两个数m和n" ) ;
scanf ( "%d %d" , & m, & n) ;
if ( m % 2 == 0 && n % 2 == 0 )
{
while ( m % 2 == 0 && n % 2 == 0 )
{
m = m / 2 ;
n = n / 2 ;
i++ ;
}
if ( m > n)
{
result = getEqualValue ( m, n) * pow ( 2 , i) ;
}
else
{
result = getEqualValue ( n, m) * pow ( 2 , i) ;
}
minResult = m * n / result;
printf ( "两个数都是偶数,最大公约数是%d\n" , result) ;
printf ( "最小公倍数是:%d" , minResult) ;
}
else
{
if ( m > n)
{
result = getEqualValue ( m, n) ;
}
else
{
result = getEqualValue ( n, m) ;
}
minResult = m * n / result;
printf ( "两个数都是奇数或者有一个数是奇数,最大公约数是%d\n" , result) ;
printf ( "最小公倍数是:%d" , minResult) ;
}
}