【Python3練習題 010】將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。


#參考http://www.cnblogs.com/iderek/p/5959318.html

 

n = num = int ( input ( '請輸入一個數字:' ))  #用num保留初始值
f = []  #存放質因數的列表
 
for j in range ( int (num / 2 ) + 1 ):  #判斷次數僅需該數字的一半多1次
     for i in range ( 2 , n):
         t = n % #i不能是n本身
         if t = = 0 #若能整除
             f.append(i)  #則表示i是質因數
             n = n / / #除以質因數后的n重新進入判斷,注意應用兩個除號,使n保持整數
             break  #找到1個質因數后馬上break,防止非質數卻可以整除的數字進入質因數列表
 
if len (f) = = 0 #若一個質因數也沒有
     print ( '該數字沒有任何質因數。' )
else #若至少有一個質因數
     f.append(n)  #此時n已被某個質因數整除過,最后一個n也是其中一個質因數
     f.sort()  #排下序
     print ( '%d=%d' % (num, f[ 0 ]), end = '')
     for i in range ( 1 , len (f)):
         print ( '*%d' % f[i], end = '')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM