首页 > 代码库 > 两种方法求最大公约数最小公倍数

两种方法求最大公约数最小公倍数

<pre name="code" class="cpp">/*
*coyright(c)2014 龙城无泪
*All rights reserved
*文件名称 digui.c
*作者:封尘之魂
*完成日期:20141108
*版本号V1.0
*问题描述:求两个整数的最大公约数最小公倍数
*输入描述:输入两个整数
*输出描述:成功输出最大公约数最小公倍数
*/
#include<stdio.h>
int main()
{int m,n,q,t,j,k;
scanf("%d%d",&m,&n);
j=m;k=n;if(m<n)//比较大小 
{t=m;
m=n;
n=t;
}
q=m%n;
while(q)//辗转相除法
 {m=n;
n=q;
q=m%n;
}
printf("%d %d",n,j*k/n); 
}


第二种循环
#include<stdio.h>
int z(int a, int b)
{
return b==0?a:z(b, a%b);//递归判断
}
int main()
{
int a,b,m;
scanf("%d%d",&a,&b);
m=z(a,b);
printf("%d %d", m,a*b/m);

}
心得:一般来说用循环解决的问题都能用递归解决  要多运用递归来解决循环的问题来锻炼自己的思维问题
方法:代替  要熟练的掌握替换之法 把没用过量赋值给用过的量,实现自己想要达到的目标

两种方法求最大公约数最小公倍数