簡體   English   中英

如何使用其主要因素和多重性獲得輸入的所有除數?

[英]how do i get all the divisors of an input using its prime factors and multiplicities?

幾天來我一直在嘗試解決這個問題,但我仍然無法得到正確的 output。 問題是這樣的,例如,如果我使用數字 50,它有一個list [2, 5]作為其prime factors ,並且這些factors的相應multiplicities性如下[1, 2]

prime_factors = [2, 5]
multiplicities = [1, 2]

所以divisors應該有一個[1, 2, 5, 10, 25, 50]output但這就是問題所在,我如何創建一個function來獲取某個input的所有divisors ,使用它的prime factors和它們的對應輸入multiplicities

好吧,問題是“我如何編寫函數”,所以也許這些建議可以幫助你:

  1. 得到簡單的例子 您已經完成了這部分 - 您輸入了 50 (prime_factors = [2, 5] multiplicities = [1, 2]) 和 [1, 2, 5, 10, 25, 50] 的 output。
  2. 嘗試一步一步地在紙上做例子 - 試着弄清楚 output 是如何從輸入中獲得的。 例如,output 列表中的10來自prime_factors中的5的多重數乘以21次方。 嘗試找出 output 列表中元素的 rest。 25從哪里來?
  3. 拿出 function 簽名 - 想一想找出結果所需的最少信息是什么,結果應該有什么形式? 這應該很容易,因為您已經發布了定義明確的輸入和 output 的示例。
  4. 嘗試概括您使用示例執行的步驟。 - 當您為您的示例提出解決方案時,請嘗試考慮另一個解決方案。 您將如何獲得 40 或 60 的結果? 你能使用與 50 相同的模式嗎?
  5. 寫一些偽代碼 - 以類似代碼的方式編寫您的想法。 如有必要,做一些循環,命名變量,稍微結構化你的代碼。 這應該導致第四步的結果,但准備好用代碼編寫。
  6. 編寫代碼 - 由於您要在 Python 中編程,請將您的偽代碼更改為 Python 之一。 根據您的技能,這一步可能會很困難,但是如果您走到這一步,這里的人會幫助您完成。

如果您被困在這些步驟中的任何一個上,這里的人會很樂意提供幫助,我們只需要有一個起點。 我建議寫出 output 中的每個元素及其來源。 祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM