#31906: python的解法與思路


10730094@ms2.hssh.tp.edu.tw (給開司一份薯片)

學校 : 不指定學校
編號 : 172670
來源 : [180.177.114.33]
最後登入時間 :
2023-01-01 23:20:42
a010. 因數分解 | From: [180.177.114.33] | 發表日期 : 2022-08-27 18:04

Number=int(input()) #變數假設和輸入 #以輸入20為例
is_First=True #是否為第一次出現
i=2  #一開始的除數
while (Number>=i): #20>=2
    count=0 #次方數
    while(Number%i==0): #如果輸入的數字整除2的話 執行底下 #20/2 整除 #10/2 也整除
        Number/=i  #20/2 =10  #10/2=5
        count+=1  #次方數加一
    if count>1 and is_First==True: #若為第一次出現而且次方數大於1:  
        print(str(i)+'^'+str(count),end='')  
        is_First=False #已經不是第一次出現了,將其改成false
    elif count==1 and is_First==True: #若為第一次出現而且次方數等於1:                 
        print(str(i),end='')
        is_First=False #已經不是第一次出現了,將其改成false
    elif count>1 and is_First==False:  #若不是第一次出現而且次方數大於1:                            
        print(' * '+str(i)+'^'+str(count),end='')            
    elif count==1 and is_First==False: #若不是第一次出現而且次方數等於1:
        print(' * '+str(i),end ='')
    else: #若上述四個條件不成立 (也就是在這一輪並沒有執行while迴圈)
        i+=1  #將i+1之後再來重新走一次所有步驟

 

 
ZeroJudge Forum