#24424: py ans


k227399@gmail.com (cw4real)

學校 : 臺北市立成功高級中學
編號 : 145222
來源 : [122.116.34.120]
最後登入時間 :
2021-08-06 16:49:59
a010. 因數分解 | From: [36.226.245.215] | 發表日期 : 2021-02-16 23:33

我是用短除法的概念來寫這題

 

 

a=int(input())  #變數假設和輸入 #以輸入20為例

t=0

s=2            #一開始的除數

while (a>=s):                   #20>0

    n=0       #次方數

    while(a%s==0):  #如果輸入的數字整除2的話 執行底下 #20/2 整除 #10/2 也整除

        a=a/s                                               #20/2 =10  #10/2=5

        n=n+1     #次方數加一                       #n=1 回前兩行  #n=2  then 5就不整除

    if n>1 and t==0:                              #符合條件

        print(str(s)+'^'+str(n),end='')     #因為python有自動空格and自動換行所以要把int() convert into str()也就是字串 再用加號 如次一來就不會有空格

        t=t+1                                         #印出  2^2

    elif n==1 and t==0:                 

        print(str(s),end='')

        t=t+1

    elif n>1:                                    

        print("",'*',str(s)+'^'+str(n),end='')            

    elif n==1:

        print("",'*',str(s),end='')

    else:

        s=s+1                        #s=3  再回到上面重複動作   檢查到5時即會跳出迴圈

 

 
#26443: Re:py ans


yangtingshuo@gmail.com (idp 554688)

學校 : 不指定學校
編號 : 95980
來源 : [110.28.137.158]
最後登入時間 :
2019-04-20 10:39:55
a010. 因數分解 | From: [110.28.137.158] | 發表日期 : 2021-08-07 13:07

我是用短除法的概念來寫這題

 

 

a=int(input())  #變數假設和輸入 #以輸入20為例

t=0

s=2            #一開始的除數

while (a>=s):                   #20>0

    n=0       #次方數

    while(a%s==0):  #如果輸入的數字整除2的話 執行底下 #20/2 整除 #10/2 也整除

        a=a/s                                               #20/2 =10  #10/2=5

        n=n+1     #次方數加一                       #n=1 回前兩行  #n=2  then 5就不整除

    if n>1 and t==0:                              #符合條件

        print(str(s)+'^'+str(n),end='')     #因為python有自動空格and自動換行所以要把int() convert into str()也就是字串 再用加號 如次一來就不會有空格

        t=t+1                                         #印出  2^2

    elif n==1 and t==0:                 

        print(str(s),end='')

        t=t+1

    elif n>1:                                    

        print("",'*',str(s)+'^'+str(n),end='')            

    elif n==1:

        print("",'*',str(s),end='')

    else:

        s=s+1                        #s=3  再回到上面重複動作   檢查到5時即會跳出迴圈

 

print的end="是不是都少了一個「"」

 
ZeroJudge Forum