python基礎題目程式設計16
阿新 • • 發佈:2019-02-06
題目:將一個正整數分解質因數。例如:輸入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的值,重複執行第一步。
#_*_ ckdkng:utf-8 _*_ import math num = int(input('請輸入一個正整數:')) l = [] nu = num k = 2 while 1: i = int(math.sqrt(num)) while k <= i: if num % k == 0: break k += 1 if k == num: l.append(str(num)) break elif num % k == 0: l.append(str(k)) num = int(num/k) k = 2 else: k += 1 a = '*' print('%d='% nu,end = '') print(a.join(l))