编写程序,求两个整数的最大公约数和最小公倍数。C语言
时间: 2024-02-27 17:54:59 浏览: 125
以下是求两个整数的最大公约数和最小公倍数的 C 语言程序:
```c
#include <stdio.h>
int gcd(int a, int b);
int lcm(int a, int b);
int main()
{
int num1, num2, hcf, lcm_val;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
// 计算最大公约数和最小公倍数
hcf = gcd(num1, num2);
lcm_val = lcm(num1, num2);
printf("GCD of %d and %d is %d\n", num1, num2, hcf);
printf("LCM of %d and %d is %d\n", num1, num2, lcm_val);
return 0;
}
// 计算最大公约数
int gcd(int a, int b)
{
while (a != b)
{
if (a > b)
{
a -= b;
}
else
{
b -= a;
}
}
return a;
}
// 计算最小公倍数
int lcm(int a, int b)
{
int temp = gcd(a, b);
return (a * b) / temp;
}
```
在这个程序中,我们首先输入两个整数。然后,我们调用 `gcd()` 函数来计算它们的最大公约数,并调用 `lcm()` 函数来计算它们的最小公倍数。这两个函数都使用欧几里得算法来计算它们的结果。
最大公约数的计算方法是:如果两个数都能被一个数整除,那么这个数就是它们的公约数,而最大公约数就是它们的所有公约数中最大的那个。我们可以使用欧几里得算法来计算最大公约数,这个算法的基本思想是:如果两个数的余数不为零,那么这两个数的最大公约数等于其中较小的那个数和它们的差的最大公约数;如果其中一个数的余数为零,那么另一个数就是它们的最大公约数。
最小公倍数的计算方法是:两个数的最小公倍数等于它们的乘积除以它们的最大公约数。