质因数分解
这篇文章会介绍使用 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}') # 否則印出質因數分解的結果
微信扫码关注
抖音扫码关注