009 題目 將乙個正整數分解質因數

2021-10-05 23:00:13 字數 948 閱讀 8981

例如:輸入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...