算法解析:求两个数的最小公倍数,可转化为先用
欧几里德算法
求两个数的最大公约数,将所求出的最大公约数除以两个数的乘积,就得到两个数的最小公倍数
#include<stdio.h>
int gcd(int x,int y); //最大公约数声明
int hcd(int x,int y,int z); //最小公倍数声明
int main()
{
int a,b,g,h;
scanf("%d %d",&a,&b);
if(a == 0||b == 0)
{
printf("输入数据错误!\n");
return 1;
}
g = gcd(a, b); //最大公约数调用
h = hcd(a, b, g); //最小公倍数函数调用
printf("两个数的最小公倍数是:%d\n",h);
return 0;
}
//求最大公约数
int gcd(int x,int y)
{
int r;
do
{
r = x % y;
x = y;
y = r;
}while(r != 0);
return x;
}
//求最小公倍数
int hcd(int x,int y,int z)
{
return (x * y / z);
}
测试结果:
1⃣️
6 5
两个数的最小公倍数是:30
2⃣️
8 12
两个数的最小公倍数是:24
版权声明:本文为weixin_43510014原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。