C语言:求两个数的最小公倍数和最大公约数

choupiaoyi 2018-11-04

算法解析:求两个数的最小公倍数,可转化为先用欧几里德算法求两个数的最大公约数,将所求出的最大公约数除以两个数的乘积,就得到两个数的最小公倍数

#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("输入数据错误!");

return 1;

}

g = gcd(a, b); //最大公约数调用

h = hcd(a, b, g); //最小公倍数函数调用

printf("两个数的最小公倍数是:%d",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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

测试结果:

1⃣️

6 5

两个数的最小公倍数是:30

2⃣️

8 12

两个数的最小公倍数是:24

C语言:求两个数的最小公倍数和最大公约数

相关推荐