编写一个程序,输入两个整数,用辗转相除法计算其最大公约数和最小公倍数。
时间: 2023-05-31 19:18:58 浏览: 166
C语言程序设计-用辗转相除法求两个整数的最大公约数;.c
5星 · 资源好评率100%
### 回答1:
以下是Python代码实现:
```python
# 定义函数,计算最大公约数
def gcd(a, b):
if b == 0:
return a
else:
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))
```
运行结果如下:
```
请输入第一个整数:12
请输入第二个整数:18
最大公约数为: 6
最小公倍数为: 36
```
### 回答2:
辗转相除法,又称欧几里得算法,是求两个正整数的最大公约数的一种方法。其基本思想是用较小数去除较大数,然后再用余数去除较小数,如此反复,直到余数为0,则最大公约数为除数。而最小公倍数则等于两数的乘积除以它们的最大公约数。接下来,我们可以编写一个程序来实现这一算法。
首先,我们需要输入两个整数,用input函数可以实现此功能:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
接下来,我们定义函数gcd来计算最大公约数,代码如下:
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
最大公约数计算完毕后,我们可以用以下代码来计算最小公倍数:
lcm = a * b / gcd(a, b)
最终的完整代码如下:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
lcm = a * b / gcd(a, b)
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", int(lcm))
运行程序,我们可以输入任意两个正整数来进行计算求解。该程序使用辗转相除法实现,将输入的两个整数计算最大公约数和最小公倍数,并将结果输出到屏幕上。
### 回答3:
辗转相除法,也称为欧几里得算法,是一种求最大公约数的算法。
首先,输入两个整数a和b,设a>b。
然后,进行辗转相除的过程,即用b去除a,得到余数r,如果r等于0,那么最大公约数就是b,最小公倍数就是a*b/b。
如果r不等于0,那就将b赋值给a,将r赋值给b,再次进行相除。
直到r等于0为止,最后输出求得的最大公约数和最小公倍数即可。
伪代码如下:
Input: a, b
If a < b then swap(a, b)
While b != 0
r = a % b
a = b
b = r
EndWhile
Output: 最大公约数 a,最小公倍数 a*b/a
Python代码如下:
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
if a < b:
a, b = b, a
while b != 0:
r = a % b
a = b
b = r
print("最大公约数为:", a)
print("最小公倍数为:", a*int(input("请输入第二个整数:"))/a)
阅读全文