1. 如果是两个数之间的关系
只有两个数:最小公倍数 = 两数之积/最大公约数
def gcd(d1, d2): # 获取最大公约数--碾转相除法 r = d1 % d2 if r: return gcd(d2, r) return d2 if __name__ == '__main__': print(gcd(15, 20)) # 最小公倍数 print(15 * 20 / gcd(15, 20))
2. 多个数之间的最小公倍数与最大公约数
2.1 最大公约数流程
a = [100, 1000, 60, 30] def greatest_common_divisor(arr): arr = sorted(arr) first_num = arr[0] while True: result = True for i in arr: if i % first_num != 0: result = False break if result: return first_num else: first_num -= 1 if __name__ == '__main__': print(greatest_common_divisor(a)) import math a = [15, 18, 21] def gcdm(arr): gcd = math.gcd(arr[0], arr[1]) for i in range(1, len(arr) - 1): gcd = math.gcd(arr[i], arr[i + 1]) return gcd if __name__ == '__main__': print(gcdm(a))
2.2 最小公倍数流程
a = [100, 1000, 60, 30] def least_common_multiple(arr): arr = sorted(arr) max_num = arr[-1] while True: result = True for i in arr: if max_num % i != 0: result = False break if result: return max_num else: max_num += 1 if __name__ == '__main__': print(least_common_multiple(a))
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mkjdt/16143.html