C语言,求最大公约数和最小公倍数
时间: 2024-11-07 11:05:07 浏览: 49
C语言求最大公约数和最小公倍数源码.zip
在C语言中,计算两个数的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)可以使用欧几里得算法(Euclidean Algorithm)以及它们之间的关系来实现。以下是简化的步骤:
**求最大公约数(GCD)**:
```c
int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
```
**求最小公倍数(LCM)**:
由于 `a * b = GCD(a, b) * LCM(a, b)`,所以我们可以利用 GCD 的已知值来求 LCM:
```c
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
```
在`main()`函数中,你可以调用这两个函数来获取输入两数的GCD和LCM。
```c
int main() {
int num1, num2;
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);
int gcd_value = gcd(num1, num2);
int lcm_value = lcm(num1, num2);
printf("The GCD of %d and %d is: %d\n", num1, num2, gcd_value);
printf("The LCM of %d and %d is: %d\n", num1, num2, lcm_value);
return 0;
}
```
阅读全文