随机输入两个正整数m和n,求其最大公约数和最小公倍数。
时间: 2024-03-24 11:32:32 浏览: 62
以下是求最大公约数和最小公倍数的Python代码:
```python
# 定义函数,求最大公约数
def gcd(m, n):
while n != 0:
t = m % n
m = n
n = t
return m
# 定义函数,求最小公倍数
def lcm(m, n):
return m * n // gcd(m, n)
# 从控制台读取用户输入的正整数m和n
m = int(input("请输入第一个正整数:"))
n = int(input("请输入第二个正整数:"))
# 输出最大公约数和最小公倍数
print("最大公约数为:", gcd(m, n))
print("最小公倍数为:", lcm(m, n))
```
相关问题
编写程序,产生两个0~100之间(包含0和100)的随机整数a和b,求这两个整数的最大公约数和最小公倍数。运行效果如图3-21所示。 整数1 = 88,整数2 = 16 最大公约数 =8,最小公倍数=176 图3-21 最大公约数和最小公倍数运行效果 提示: (1)可以利用“random.randint(0,100)”的语句形式生成0~100之间(包含0和100)的随机整数。 (2)利用“辗转相除法”求最大公约数,具体算法如下: ①对于已知的两个正整数m、n,使得m>n。 ②m除以n得余数r。 ③若r0,则令mn,nr,继续相除得到新的余数r。若仍然r0,则重复此过程,直到r=0为止。最后的m就是最大公约数。 (3)求得了最大公约数后,最小公倍数就是已知的两个正整数之积除以最大公约数的商
以下是C知道的回答:
这是一个简单的Python程序,可以生成两个0~100之间的随机整数a和b,并计算它们的最大公约数和最小公倍数。程序如下:
```python
import random
# 生成随机整数a和b
a = random.randint(0, 100)
b = random.randint(0, 100)
# 计算最大公约数
m = max(a, b)
n = min(a, b)
r = m % n
while r != 0:
m = n
n = r
r = m % n
gcd = n
# 计算最小公倍数
lcm = a * b // gcd
# 输出结果
print("整数1 =", a, ",整数2 =", b)
print("最大公约数 =", gcd, ",最小公倍数 =", lcm)
```
运行结果如下:
```
整数1 = 88 ,整数2 = 16
最大公约数 = 8 ,最小公倍数 = 176
```
希望这个程序能够帮助你解决问题。如果你有其他问题,欢迎继续提问。
python随机生成3个正整数,求这三个数的最大公约数和最小公倍数
可以使用Euclid算法来求最大公约数,使用最大公约数和两数之积来求最小公倍数。
以下是Python代码实现:
```python
import random
# 生成3个随机正整数
a = random.randint(1, 100)
b = random.randint(1, 100)
c = random.randint(1, 100)
# 输出生成的数
print("生成的三个数分别为:", a, b, c)
# 求最大公约数
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x % y)
# 求最小公倍数
def lcm(x, y):
return x * y // gcd(x, y)
# 求三个数的最大公约数和最小公倍数
g = gcd(gcd(a, b), c)
l = lcm(lcm(a, b), c)
# 输出结果
print("三个数的最大公约数为:", g)
print("三个数的最小公倍数为:", l)
```
运行结果可能如下:
```
生成的三个数分别为: 22 58 87
三个数的最大公约数为: 1
三个数的最小公倍数为: 3606
```
阅读全文