python 输入多组 a b ,求a b的最小公倍数
时间: 2024-05-13 21:16:10 浏览: 9
可以使用辗转相除法求两个数的最大公约数,然后通过最大公约数求得最小公倍数。
代码如下:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
while True:
try:
a, b = map(int, input().split())
gcd_value = gcd(a, b)
lcm_value = a * b // gcd_value
print(lcm_value)
except:
break
```
这里使用了一个 `while True` 循环,不断接收输入的多组数据,直到输入结束。`map(int, input().split())` 可以同时输入多个数,这里我们只需要输入两个数,分别赋值给变量 `a` 和 `b`。
然后调用 `gcd()` 函数求出 `a` 和 `b` 的最大公约数 `gcd_value`,最后根据公式 `lcm(a,b) = a*b/gcd(a,b)` 计算出最小公倍数 `lcm_value` 并输出即可。
相关问题
写一段代码,用python求a和b的最小公因数
### 回答1:
您可以使用辗转相除法(Euclidean algorithm)来求两个数的最大公因数,然后再利用最大公因数求最小公因数。
代码如下:
```
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("最小公因数是:", lcm(a, b))
```
运行代码时,将提示您输入两个数,程序会输出它们的最小公因数。
### 回答2:
以下是使用Python编写的求a和b的最小公因数的代码:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
a = int(input("请输入第一个数a:"))
b = int(input("请输入第二个数b:"))
result = gcd(a, b)
print("a和b的最小公因数为:", result)
```
首先,定义了一个名为`gcd`的函数,该函数使用辗转相除法来求取a和b的最小公因数。在每一次的循环中,将b的值赋给a,并将a除以b的余数赋给b,直到b等于0为止,此时a的值即为a和b的最小公因数。
然后,通过`input`函数分别从用户输入获取两个数a和b的值。接着,将a和b作为参数传递给`gcd`函数,并将返回的结果保存在`result`变量中。
最后,使用`print`函数将结果输出到屏幕上,显示a和b的最小公因数。
### 回答3:
下面是一段用Python编写的代码,用于求a和b的最小公因数。
```python
def gcd(a, b):
# 判断是否为0
if a == 0:
return b
if b == 0:
return a
# 辗转相除法求最大公约数
while b != 0:
temp = a % b
a = b
b = temp
return a
a = int(input("请输入一个整数a:"))
b = int(input("请输入另一个整数b:"))
result = gcd(a, b)
print("a和b的最小公因数是:", result)
```
运行代码,用户需要依次输入两个整数a和b。程序首先判断输入的a或b是否为0,如果其中一个为0,则返回另一个数作为最小公因数。否则,使用辗转相除法求取a和b的最大公约数,并将最终结果作为最小公因数输出。
python求两个正整数a,b的最大公约数和最小公倍数
最大公约数可以使用欧几里得算法,也叫辗转相除法。
代码如下:
```python
def gcd(a, b):
while b!=0:
r = a%b
a = b
b = r
return a
def lcm(a, b):
return a*b//gcd(a,b)
a = int(input("请输入a:"))
b = int(input("请输入b:"))
print("a和b的最大公约数为:", gcd(a,b))
print("a和b的最小公倍数为:", lcm(a,b))
```
如果还有其它问题,可以继续提问。