1、最大公约数、最小公倍数的求解 以下程序为用辗转相除法求出两个正整数的最大公约数。若两个数分别存放在变量m和 n中,求最大公约数的算法如下,请上机调试程序并测试运行结果。
时间: 2023-11-28 11:51:02 浏览: 71
以下是用辗转相除法求解最大公约数和最小公倍数的程序,你可以参考一下:
```c
#include <stdio.h>
int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
int lcm(int a, int b) {
int g = gcd(a, b);
return a * b / g;
}
int main() {
int m, n;
printf("请输入两个正整数:");
scanf("%d%d", &m, &n);
printf("最大公约数为:%d\n", gcd(m, n));
printf("最小公倍数为:%d\n", lcm(m, n));
return 0;
}
```
运行结果:
```
请输入两个正整数:12 18
最大公约数为:6
最小公倍数为:36
```
相关问题
以下程序用辗转相除法求出两个正整数的最大公约数和最小公倍数
```python
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
def lcm(a, b):
return a * b // gcd(a, b)
a = int(input())
b = int(input())
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
其中,`gcd`函数用于求最大公约数,`lcm`函数用于求最小公倍数。程序输入两个正整数`a`和`b`,输出它们的最大公约数和最小公倍数。
c语言用辗转相除法求出两个正整数的最大公约数和最小公倍数
最大公约数和最小公倍数的求法如下:
最大公约数(GCD):辗转相除法,也叫欧几里得算法,是求两个正整数的最大公约数的常用方法。
最小公倍数(LCM):两个正整数a和b的积等于它们的最大公约数(GCD)和最小公倍数(LCM)的积,即a*b=GCD(a,b)*LCM(a,b),因此可以通过最大公约数来求最小公倍数。
以下是C语言代码实现:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int num1, num2;
printf("Enter two positive integers: ");
scanf("%d %d", &num1, &num2);
printf("GCD(%d, %d) = %d\n", num1, num2, gcd(num1, num2));
printf("LCM(%d, %d) = %d\n", num1, num2, lcm(num1, num2));
return 0;
}
```
代码解释:
- 定义函数gcd来求最大公约数,使用递归实现辗转相除法,当b为0时,a即为最大公约数。
- 定义函数lcm来求最小公倍数,使用a*b/GCD(a,b)的公式来计算。
- 在main函数中,先输入两个正整数,然后调用gcd和lcm函数分别求出它们的最大公约数和最小公倍数,并输出结果。
阅读全文