將輸入的正整數分解質因數
阿新 • • 發佈:2020-07-31
程式設計要求:
將輸入的一個正整數分解質因數,並輸出結果。如:輸入:90,輸出:90=2*3*3*5;輸入:79,輸出:79=79
思路:
如果是質數,直接輸出;如果不是,則一個質因數一個質因數找下去,如90=2*45,2是質數,接著判斷45,以此類推。
程式碼示例(Python):
#輸入一個正整數 x = int(input()) #將輸入的正整數分解質因數 #判斷是否為質數 def isprime(n): if n == 2 or n == 3: return True mid = int(n**0.5) for i in range(2, mid+1):if n % i == 0: return False return True #分解輸入的正整數,輸出質因數列表 def fenjie(n): lst = []
while(not isprime(n)): mid = int(n**0.5) for i in range(2, mid+1): a, b = divmod(n, i) if b == 0: lst.append(i) n = abreak #找到一個因子,退出for,找餘數的質因數 lst.append(n) return lst rst = fenjie(x) #輸出結果,利用map()函式將結果按照規定字串格式輸出 print(x,'=','*'.join(map(str,rst)))
總結:
思路不對,則程式各種邏輯錯誤。