/*
程序:求最大公约数,和最小公倍数
时间:2007年10月8日
名称:maxandmin.c
方法:
1.先求出最大公约数,用辗转相除法
2.再通过最大公约数来求最小公倍数
3.min = (m/max)*(n/max)*max=(m*n)/max (说明:max为所求得的最大公约数,min为所求得的最小公倍数
*/
#include <stdio.h>
int main(void)
{
int m,n; /* m,n为输入数据,目的是求解m和n的最大公约数以及最小公倍数 */
int i,t,min=0,max=0;
printf("Please input the num(m and n): ");
scanf("%d %d",&m,&n);
t = m*n ;
if (n== 0 || m == 0 )
{
printf("Your data is wrong!!! ");
exit(1);
}
if ( m % n == 0 )
{
max = n ;
min = m ;
goto end ;
}
else if ( n % m == 0)
{
max = m ;
min = n ;
goto end ;
}
while ( n != 0 ) /**//*辗转相除法:除数作为被除数,余数作为除数,当除数为:0时,被除数就是最大公约数*/
{
i = m % n ;
m = n ;
n = i ;
}
max = m ;
min = t / max ;
end:
printf("max= %d , min = %d ",max,min);
system("pause");
return 0 ;
}