求两个数的最大公约数最小公倍数c语言
时间: 2023-05-09 09:03:51 浏览: 139
求两个数的最大公约数和最小公倍数是基础的数学问题,在编写C程序时同样也非常常见。
求最大公约数的方法可以使用辗转相除法,即通过反复地用较小数去除较大数的余数,直到余数为0,所得的最后一个非零余数即为最大公约数。实现时可以写一个循环,每次将较大的数对较小的数求余,然后将较小的数赋值给较大的数,将余数赋值给较小的数,直到余数为0,此时最大公约数即为较小的数。
求最小公倍数可以通过公式 lcm(a,b) = a*b/gcd(a,b) 计算得到,其中gcd(a,b)为a和b的最大公约数。因此,可以首先调用函数求出最大公约数,然后再计算最小公倍数。
下面给出一个简单的C程序实现:
```c
#include <stdio.h>
int gcd(int a, int b) { //求最大公约数函数
int tmp;
while (b != 0) {
tmp = a % b;
a = b;
b = tmp;
}
return a;
}
int main() {
int a, b, gcd_num, lcm_num;
printf("请输入两个数:\n");
scanf("%d%d", &a, &b);
gcd_num = gcd(a, b); //求最大公约数
lcm_num = a * b / gcd_num; //求最小公倍数
printf("最大公约数为:%d\n", gcd_num);
printf("最小公倍数为:%d\n", lcm_num);
return 0;
}
```
在输入两个数后,程序会首先调用gcd函数求出最大公约数,然后再根据公式计算最小公倍数,最后输出结果。
阅读全文