好输出两个正整数 求最大公约数最小公倍数
时间: 2024-05-12 10:20:21 浏览: 48
假设输入的两个正整数分别为a和b。
最大公约数可以使用辗转相除法(欧几里得算法)求得:
```
while b:
a, b = b, a % b
gcd = a
```
最小公倍数可以使用公式 `a * b / gcd` 求得:
```
lcm = a * b // gcd
```
完整代码如下:
```python
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
# 求最大公约数
while b:
a, b = b, a % b
gcd = a
# 求最小公倍数
lcm = a * b // gcd
print("最大公约数为:", gcd)
print("最小公倍数为:", lcm)
```
相关问题
python输出两个正整数 求最大公约数最小公倍数
可以使用辗转相除法来求最大公约数,使用公式:
gcd(a, b) = gcd(b, a mod b)
其中,a mod b 表示 a 除以 b 的余数。
最小公倍数可以用以下公式求解:
lcm(a, b) = a * b / gcd(a, b)
代码实现如下:
```python
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
# 辗转相除法求最大公约数
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)
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
示例输出:
```
请输入第一个正整数:12
请输入第二个正整数:18
最大公约数为: 6
最小公倍数为: 36
```
输入两个正整数求最大公约数最小公倍数
最大公约数可以使用辗转相除法或欧几里得算法求解,最小公倍数可以通过最大公约数求解。
辗转相除法:
设两个正整数为a和b,且a>b,用a除以b,得到余数r,若r为,则b即为最大公约数;若r不为,则用b除以r,得到余数r1,若r1为,则r即为最大公约数;若r1不为,则继续用r除以r1,直到余数为为止。
最大公约数:两个正整数a和b的最大公约数为gcd(a,b)。
最小公倍数:两个正整数a和b的最小公倍数为lcm(a,b) = a*b/gcd(a,b)。
例如,输入两个正整数10和15,先求最大公约数,使用辗转相除法,得到:
10÷15=...10
15÷10=1...5
10÷5=2...
因此,gcd(10,15)=5。
再求最小公倍数,使用公式lcm(10,15) = 10*15/5 = 30。
因此,10和15的最大公约数为5,最小公倍数为30。