Python求最大公约数和最小公倍数代码实例
时间: 2023-05-16 17:06:20 浏览: 153
以下是 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)
```
其中,`gcd` 函数用于求最大公约数,`lcm` 函数用于求最小公倍数。
相关问题
python用构造函数的方法求最大公约数和最小公倍数
可以使用类和构造函数来实现求最大公约数和最小公倍数的功能。具体实现如下:
```python
class Math:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
def gcd(self):
# 求最大公约数
if self.num1 < self.num2:
self.num1, self.num2 = self.num2, self.num1
while self.num2 != 0:
self.num1, self.num2 = self.num2, self.num1 % self.num2
return self.num1
def lcm(self):
# 求最小公倍数
return self.num1 * self.num2 // self.gcd()
# 实例化对象,传入两个数
m = Math(12, 16)
# 求最大公约数和最小公倍数
print(m.gcd()) # 输出为4
print(m.lcm()) # 输出为48
```
在上面的示例中,我们定义了一个`Math`类,并在构造函数中接收两个参数`num1`和`num2`。然后,我们定义了两个方法`gcd`和`lcm`,分别用于计算最大公约数和最小公倍数。
在`gcd`方法中,我们使用辗转相除法来求最大公约数。在`lcm`方法中,我们先调用`gcd`方法求出最大公约数,然后用两数之积除以最大公约数来求最小公倍数。
最后,我们实例化`Math`对象,并调用`gcd`和`lcm`方法来求最大公约数和最小公倍数。
python写一个类GCM,该类有两个实例变量a和b,方法func()用来返回a和b的最大公约数;然后编写一个该类的子类LCM,要求子类重写方法func()返回a和b的最小公倍数,要求在重写的方法的方法体中调用父类方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回 补充代码,并求15和20的最大公约数和最小公倍数
以下是补充的代码:
```python
class GCM:
def __init__(self, a, b):
self.a = a
self.b = b
def func(self):
if self.b == 0:
return self.a
else:
return self.func(self.b, self.a % self.b)
class LCM(GCM):
def func(self):
m = super().func()
return int((self.a * self.b) / m)
```
求15和20的最大公约数和最小公倍数可以这样做:
```python
gcm = GCM(15, 20)
print("15和20的最大公约数为:", gcm.func())
lcm = LCM(15, 20)
print("15和20的最小公倍数为:", lcm.func())
```
输出结果:
```
15和20的最大公约数为: 5
15和20的最小公倍数为: 60
```
阅读全文