最小公倍数 ( 多个数字 )
这篇文章会介绍使用 Python 的串列、for 循环、while 循环 和 if 判断式,让用户输入多个数字后,自动计算出这几个数字的最小公倍数。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
什么是最小公倍数?
“公倍数”是指不同数字间共同的倍数,而最小公倍数,就是这些倍数里最小的那个数字,下图的例子可以看出 2、3、4 三个数字里有 12、24...等的公倍数,而 12 就是它们的最小公倍数。
基本原理
要求出有多个数字的最小公倍数,最简单的方法就是先将“最大的数字”当作“暂定的最小公倍数”,用它依序除以其他的数字,如果无法整除,就将“暂定的最小公倍数 + 最大的数字”,然后继续除以其他数字,直到全部都整除为止,就会得到最小公倍数。
编辑程序
按照最小公倍数的原理,编辑程序,当中会使用 list()、sort() 排序、split() 拆分字串...等方法操作字串与串列,也会使用 while 循环 与 for 循环 进行重复的行为。
input_str = input('輸入數字 ( 逗號分隔 ):') # 讓使用者輸入數字,數字間用逗號分隔
nums = input_str.split(',') # 將輸入的文字,用逗號拆分成串列
for i in range(len(nums)): # 將串列的每個項目轉換成文字
nums[i] = int(nums[i])
nums.sort(reverse=True) # 將串列從大到小排序
result = nums[0] # 設定「暫定的最小公倍數」為最大的數字
while True: # 執行 while 迴圈
a = 0 # 新增 a 變數,當作餘數使用
for i in nums: # 依序取出串列中的每個數字
a = result%i # 用「暫定的最小公倍數」除以每個數字,求出餘數
if a != 0: # 如果餘數不為 0,跳出 for 迴圈再來一次
break
if a == 0: # 如果全部餘數都為 0,跳出 while 迴圈
break
else:
result = result + nums[0] # 如果餘數不為 0,就將「暫定的最小公倍數」加上最大的數字,然後再來一次
print(result) # while 迴圈結束後,印出最小公倍數
微信扫码关注
抖音扫码关注