質因數分解
這篇文章會介紹使用 Python 變數的計算、while 迴圈、for 迴圈、input 指令和 if 判斷式,做出一個使用者輸入數字後,判斷數字是否為質數,如果不是質數,就將其做質因數分解的範例。
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
基本原理
質因數分解的原理,就是透過迴圈的方式,將使用者輸入的數字,依序除以 2、3、4...一直到數字本身,如果可以被整除,表示這個數字不是質數,整除後再將商依序除以 2、3、4...,不斷重複這個步驟,就能進行直因數分解。
編輯程式
按照原理圖的判斷規則編輯程式,當中會使用 while 迴圈、for 迴圈、if 判斷式、break...等方法:
a = b = int(input('請輸入一個正整數:')) # 新增 a 和 b 變數,等於使用者輸入的數字
output = '' # 新增 output 變數,作為輸出的文字
while True: # 使用 while 迴圈
for i in range(2,(a+1)): # 使用 for 迴圈
if i==b: # 如果 i 等於 b,表示是質數,跳出 for 迴圈
break
if a%i==0: # 如果可以被 i 整除,表示不是質數
output += f'{i}' # 設定 output 輸出的內容
a = int(a/i) # 重新將 a 設定為商
break # 跳出 for 迴圈
if a==1 or a==b: # 如果商等於 1 或是質數,跳出 while 迴圈
break
else:
output += '*' # 否則在 output 後方加上 * 號,繼續 while 迴圈
if b == a and b!= 1:
print(f'{b} 是質數') # while 迴圈結束後,如果 a 等於 b,印出質數的文字
elif b == 1:
print(f'{b} 不是質數,也不能質因數分解') # 如果輸入的是 1 或 2
else:
print(f'{b}={output}') # 否則印出質因數分解的結果
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~