天天看點

python 對正整數分解質因數

題目:将一個正整數分解質因數。例如:輸入90,列印出90=233*5。

程式分析:對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:

(1)如果這個質數恰等于n,則說明分解質因數的過程已經結束,列印出即可。

(2)如果n<>k,但n能被k整除,則應列印出k的值,并用n除以k的商,作為新的正整數你n,

 重複執行第一步。

(3)如果n不能被k整除,則用k+1作為k的值,重複執行第一步。

def Num(n):
    print("{}=".format(n),end="")
    if not isinstance(n,int) or n<0:
        print("請輸入一個正确的數:")
        exit(0)
    elif n in [1]:
        print("{}".format(n),end="")
    while n not in[1]:
        for index in range(2,n+1):
            if n%index==0:
                n=n//index
                if n==1:
                    print(index)
                else:
                    print("{}*".format(index),end="")

print(Num(90))

           
from sys import stdout
n = int(input("input number:\n"))
print("n = %d" % n)

for i in range(2,n + 1):
    while n != i:
        if n % i == 0:
            stdout.write(str(i))
            stdout.write("*")
            n = n / i
        else:
            break
print ("%d" % n)

           

繼續閱讀