#include<stdio.h>
//函数嵌套(最大公约数}
int hcf(int u,int v)
{
int tep;
if(u<v)//保证u>v
{
tep=u;
u=v;
v=tep;
}
while(v!=0)
{
tep=u%v;
u=v;
v=tep;
}
return u;
}
//函数递归 (求最大公约数)
int hcf_2(int a, int b)
{
if(a%b==0)
{
return b;
}
else
{
return hcf(b,a%b);
}
}
//最小公倍数方法 一
//如果大数字除以小数字等于0,那么最小公倍数就是最大的数字
//如果不等于0,将最大公倍数扩大倍数,再来除以小数字看余数
int lcd(int u, int v)
{
int tep=1,k=1;
if(u<v)//保证u>v
{
tep=u;
u=v;
v=tep;
}
int a=u;//注意倍数扩增方法
while(tep!=0)
{
u=k*a;
tep=u%v;
k++ ;
}
return u;
}
//最小公倍数方法二
//两数相乘除以最大公约数
int lcd_2(int u, int v,int h)
{
return(u*v/h);
}
//函数递归
//不会将参数依次增倍
int lcd_3(int u, int v)
{
int tep;
if(u<v)//保证u>v
{
tep=u;
u=v;
v=tep;
}
int k=1, a=u;
if(u%v==0)
{
return u;
}
else
{
return lcd_3(u+a,v);
}
}
int main()
{
int u, v, h, l;
scanf("%d,%d",&u, &v);
h=hcf_2(u,v);
l=lcd_2(u,v,h);
printf("%d\n",h);
printf("%d\n",l);
return 0;
}
求最小公倍数用函数递归不会做,蹲大佬指点。