Python案例001:將一個正整數分解質因數

【難度】★☆

【題目】將一個正整數分解質因數。例如:輸入90,打印出90=2 * 3 * 3 * 5

【答題思路】

1)正整數分解質因數,假設該數字爲n,開始從2到n、從小到大的對該數字做除法,得到的第一個整除的除數是其中一個質因數(得到的第一個餘數是0的除數);
2)當前所除得的商,再去用上述的方法求它的第一個質因數;
3)重複上述步驟,直到最終整除的商是1時,最後一個質因數查找完畢!

綜上所述,這種方法用遞歸會很方便。
a.遞歸的循環條件是:找到第一個整除的除數
b.遞歸循環的 輸出->輸入:當前循環得到的除數的商
c.遞歸循環的終止條件:第一個整除的商是1

【遞歸實現】

def prime_factor(number):
  #遞歸終止條件
  if number == 1:
    return []
  else:
    for i in range(2,number+1):
      #得到商和餘
      n,d = divmod(number,i)
      if d == 0:
        return [i] + prime_factor(n)

【可直接運行的完整代碼】

正好最近在嘗試構建微信公衆號體系,還是以簡書雜談爲主,一些高瀏覽量的精品文章轉發至微信公衆號。所以歡迎大家關注我的公衆號【技能精進手冊】。

本案例的完整版、可運行的版本也在公衆號中,回覆關鍵詞代碼“py001”,就可以下載啦!~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章