2017年12月19日 星期二

a010: 因數分解


a010: 因數分解
"""各位在國小時都學過因數分解,都瞭解怎麼樣用紙筆計算出結果,
現在由你來敎電腦做因數分解。
因數分解就是把一個數字,切分為數個質數的乘積,如 12=2^2 * 3

其中, 次方的符號以 ^ 來表示"""


def reduceNum(n):
    print ('{} = '.format(n),end='')
    if not isinstance(n, int) or n <= 0 :
        print ('請輸入一個正確的數字 !')
        exit(0)
    elif n in [1] :
        print ('{}'.format(n))
    while n not in [1] : # 迴圈保證遞迴
        for index in range(2, n + 1) :
            if n % index == 0:
                n =int(n/ index) # n 等於 n/index
                if n == 1:
                    print (index)
                else : # index 一定是素數
                    print ('{} *'.format(index),end='')
                break




print("因數分解")

intX=int(input("請輸入數目  : "))

reduceNum(intX)

====================== RESTART: D:/Python_APSC/a010.py ======================
因數分解
請輸入數目  : 999997
999997 = 757 *1321
>>>
====================== RESTART: D:/Python_APSC/a010.py ======================
因數分解
請輸入數目  : 17
17 = 17
>>>

沒有留言:

張貼留言

ModBus + Fuxa + MQTT

  ModBus + Fuxa + MQTT  這是一個非常實用且經典的工業物聯網(IIoT)與數據可視化架構。在這個架構中, Modbus Poll 負責模擬底層工業設備(如 PLC、感測器), MQTT Broker 擔任資料交換的中台,而 FUXA 則是一套開源的 W...