求最大公约数与最小公倍数 之 函数算法
下面总结一下有关最大公约数与最小公倍数的函数算法
#include <stdio.h>
#include <stdlib.h>
int hcf(int u, int v) //计算最大公约数之:辗转相除法
{
int t, r;
if (u < v)
{
t = u;
u = v;
v = t;
}
while ((r=u%v)!=0) //这是一种算法,辗转相除
{
u = v;
v = r;
}
return(v); //返回v的值,即为最大公约数的值
}
int lcd(int u, int v, int h) //求最小公倍数 利用乘积相等
{
return(u * v / h); //建立在最大公约数的基础上求得最小公倍数的值
}
int main()
{
int hcf(int u, int v); //先进行函数的声明
int lcd(int u,int v,int h);
int u, v, h, l;
printf("please enter two intergers:\n");
scanf("%d,%d",&u,&v);
h = hcf(u, v); //hcf函数的调用
printf("H.C.F = %d\n", h); //输出最大公约数
l = lcd(u, v, h); //lcd函数的调用
printf("L.C.D = %d\n", l); //输出最小公倍数
return 0;
}
输出结果为:
谢谢大家,希望能有所帮助。