天天看點

python-将一個正整數分解質因數。例如:輸入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的值,重複執行第一步

代碼示例如下

解法一

while 1:
    n = int(input('請輸入一個整數:'))
    print('%d='%n,end='')
    while n>1:
        for i in range(2,n+1):
            if n%i==0:
                n=int(n/i)
                if n==1:
                    print('%d'%i,end='')
                else:
                    print('%d*'%i,end='')
                break
    print()      

運作結果:

python-将一個正整數分解質因數。例如:輸入90,列印出90=2*3*3*5
from math import sqrt
while 1:
    n=int(input('請輸入整數:'))
    print ("%d = " %n , end = '')
    while 1:
        for i in range(2,int(sqrt(n)+1)):
            if n%i==0:
                print('%d*'%i,end='')
                n=int(n/i)
                break
        else:
            print(n)
            break