python不用函数怎么实现辗转相除法求最大公约数和最小公倍数
时间: 2024-05-23 16:15:13 浏览: 114
可以使用以下代码实现:
n1 = int(input("请输入第一个数:"))
n2 = int(input("请输入第二个数:"))
while n2 != 0:
r = n1 % n2
n1 = n2
n2 = r
gcd = n1
lcm = int(n1 * (n2/gcd))
print("最大公约数为:%d" % gcd)
print("最小公倍数为:%d" % lcm)
相关问题
Python求用辗转相除法求最大公约数和最小公倍数
Python中可以使用辗转相除法(也叫欧几里得算法)来计算两个整数的最大公约数(Greatest Common Divisor,简称GCD)。这是一种通过不断将较大的数除以较小的数,然后用余数替换较大数,直到余数为0为止,此时的较小数就是两数的最大公约数。
以下是一个简单的Python函数示例:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
# 示例
print(gcd(48, 18)) # 输出:6
```
对于求最小公倍数(Least Common Multiple,简称LCM),通常有以下公式:`lcm(a, b) = abs(a * b) // gcd(a, b)`。这是因为两个数的乘积等于它们的最大公约数和最小公倍数的乘积。
下面是计算最小公倍数的函数:
```python
def lcm(a, b):
return abs(a * b) // gcd(a, b)
# 示例
print(lcm(48, 18)) # 输出:144
```
python辗转相除法求最大公约数和最小公倍数
Python中的辗转相除法可以用以下代码实现:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
```
其中,`gcd`函数用于求最大公约数,`lcm`函数用于求最小公倍数。
辗转相除法的基本思想是:用较大的数除以较小的数,再用余数去除较小的数,如此反复,直到余数为为止。最后的除数就是最大公约数,而最小公倍数等于两数之积除以最大公约数。
例如,求出30和45的最大公约数和最小公倍数,可以这样调用函数:
```python
>>> gcd(30, 45)
15
>>> lcm(30, 45)
90
```
因此,30和45的最大公约数是15,最小公倍数是90。
阅读全文