例如:輸入90,列印出90=2*3*3*5。
程式分析:對n進行分解質因數,應先找到乙個最小的質數k,然後按下述步驟完成:
(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,列印出即可。
(2)如果n<>k,但n能被k整除,則應列印出k的值,並用n除以k的商,作為新的正整數你n,重複執行第一步。
(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。
**演示:
num = int(input("請輸入乙個正整數:"))
a_list = list(range(2,num + 1))#使用range()建立數字列表
for i in range(2,num + 1):
for j in range(2,i):
if i % j == 0:
a_list.remove(i)#remove() 函式用於移除列表中某個值的第乙個匹配項
break#break 語句可以跳出 for 和 while 的迴圈體
print("正整數分解質因數:%d="%num , end = "")
max_one = max(a_list)
min_one = min(a_list)
if num == max(a_list):
print(num)
else:
while num >= min_one:
for g in a_list:
if num % g == 0:
print(g,end = "")
break
num = num / g
if num != 1:
print("*",end = "")
結果演示:
請輸入乙個正整數:8
正整數分解質因數:8=2*2*2
Just for fun 分解乙個正整數的質因數
為什麼我要記錄這個問題,因為之前面試的時候遇到過,當時自己寫的演算法不好,所以,在此記錄一下 是基於python3寫的 人生苦短,寫演算法請用python,web的話請用php def prime n l while n 1 for i in range 2,n 1 if n i 0 n int n...
將乙個正整數分解質因數
題目 將乙個正整數分解質因數。例如輸入90,列印90 2 3 3 5 分析 對n進行分解指數,應該先找到乙個最小的指數k,然後按照下面的步驟完成 1 如果這個指數恰好等於n,則說明分解指數的過程已經結束,列印出即可 2 如果k n,但n能被k整除,則應列印出k的值,並用n除以k的商,作為心的正整數,...
(python)對乙個正整數分解質因數
質因數 素因數或質因子 在數論裡是指能整除給定正整數的質數。除了1以外,兩個沒有其他共同質因子的正整數稱為互質。因為1沒有質因子,1與任何正整數 包括1本身 都是互質 簡而言之就是 質因數就是乙個數的約數,並且是質數。例如 90 2 2 3 5 如下 x int input please enete...