將一個正整數分解質因數並輸出。例如,輸出60 = 2 * 2 * 3 * 5 * 1


非叫我將一個正整數分解質因數並輸出,想的我頭又禿了一層(開玩笑的哈哈哈

  • 對於這個問題,首先先搭好框架:也就是input語句輸入和判斷輸入的正確性。
  • 然后考慮正整數分解后能有哪些數可以作為因子,我從1-9比較了之后發現只有2,3,5,7這四個數可以作為質因子分解正整數(其他的為什么不行呢,這里打個比方你就明白了:4是2的倍數,4=22,還能被2分解;再比如,9=33還能被3分解,以此類推)。
  • 然后就設計算法將你輸入的數與2,3,5,7分別取模比較是否能除盡了,如果能除盡,就說明這個數是你輸入的數的一個乘數,也就是這個數能分解輸入的數~
  • 滿足之后你還要考慮輸出結果。我們要實現的結果是這樣子的:
    60 = 2 * 2 * 3 * 5 * 1
  • 所以就要嘗試如何能達到目標效果。
  • 達到效果后我們還要考慮本身是一個質數的可能,然后輸出該質數等於1與它本身的乘積。

以上就是我思考這個問題的過程。思考的過程讓我對算法,對編程有了更一步的認識。以后遇到問題的時候就要按照目標是什么-怎么辦逐一攻破。

下面上代碼:

num = int(input("請輸入一個正整數:"))
num1 = str(num)
flag = 1
print(num1, "=", end=" ")
while flag:
    if num > 0:
        m = [2, 3, 5, 7]
        for n in m:
            if num % n == 0:
                print(n, "*", end=" ")
                num = num / n
                flag = 1
                break

            if num % n != 0 and n == 7:
                print(int(num), end=" ")
                flag = 0
                break
    else:
        print("請輸入一個正整數!")

輸出結果:
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM