C语言实现最大公约数和最小公倍数计算
C语言实现最大公约数和最小公倍数计算
最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM)是数学中的基本概念。可以使用以下C语言代码实现:
#include <stdio.h>
int gcd(int a, int b); // 计算最大公约数的函数
int lcm(int a, int b); // 计算最小公倍数的函数
int main() {
int x, y;
printf("请输入两个整数:");
scanf("%d%d", &x, &y);
printf("它们的最大公约数是:%d\n", gcd(x, y));
printf("它们的最小公倍数是:%d\n", lcm(x, y));
return 0;
}
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
代码解释:
- 输入两个整数:程序首先提示用户输入两个整数,并使用
scanf()函数将它们存储在变量x和y中。 - 计算最大公约数 (GCD):
gcd(int a, int b)函数使用递归方法计算两个整数的最大公约数。递归的终止条件是b == 0,此时a就是最大公约数。否则,递归调用gcd(b, a % b),不断迭代直到b为 0。 - 计算最小公倍数 (LCM):
lcm(int a, int b)函数首先调用gcd(a, b)计算最大公约数,然后使用公式a * b / gcd(a, b)计算最小公倍数。 - 输出结果:程序最后输出计算得到的最大公约数和最小公倍数。
总结
这段代码展示了使用C语言计算最大公约数和最小公倍数的简单方法,通过递归函数 gcd 和公式计算 lcm,可以方便地实现这两个基本数学运算。
原文地址: https://www.cveoy.top/t/topic/jIPX 著作权归作者所有。请勿转载和采集!