求兩值的最小公倍數
首先比較兩值大小,取兩值較大的數為max。
加入循環,max分别除以兩值,若餘數為0,則為最小公倍數。
求兩值的最大公約數
首先比較兩值大小,取兩值較小的數為min。
加入循環,min分别除以兩值,若餘數為0,則為最小公約數。
代碼:
class GreatestDivisor():
def __init__(self,x,y):
self.x = x
self.y = y
#求最大公約數
def gcd(self):
if self.x < self.y:
self.smallnum = self.x
else:
self.smallnum = self.y
for i in range(1,self.smallnum+1):
if self.x % i == 0 and self.y % i == 0:
print("最大公約數為:{}".format(self.smallnum))
return i
#求最小公倍數
def lcm(self):
if self.x > self.y:
self.maxnum = self.x
else:
self.maxnum = self.y
while True:
if self.maxnum%self.x == 0 and self.maxnum%self.y == 0:
print("最小公倍數為:{}".format(self.maxnum))
return self.maxnum
else:
self.maxnum+=1
grest = GreatestDivisor(5,45)
grest.lcm(),grest.gcd()
運作結果:
最小公倍數為:45
最大公約數為:5