#30812: python 解答參考


Akira_chi (unknown)

學校 : 不指定學校
編號 : 194818
來源 : [59.120.185.108]
最後登入時間 :
2022-06-24 14:55:58
a010. 因數分解 | From: [59.120.185.108] | 發表日期 : 2022-06-14 09:36

a = int(input())
div_num = 2
cnt=0
if (a==1):
    print("1")
else:
    while a!=1:
        if (a%div_num)==0:
            cnt += 1
            a //= div_num
        else:
            if cnt:
                print("%d^%d * "%(div_num, cnt),end='') if cnt>1 else print("%d * "%(div_num),end='')
            div_num += 1
            cnt=0
   
    print("%d^%d"%(div_num, cnt)) if cnt>1 else print("%d"%(div_num))
 
#30814: Re: python 解答參考


Akira_chi (unknown)

學校 : 不指定學校
編號 : 194818
來源 : [59.120.185.108]
最後登入時間 :
2022-06-24 14:55:58
a010. 因數分解 | From: [59.120.185.108] | 發表日期 : 2022-06-14 10:25

a = int(input())
div_num = 2
cnt=0
if (a==1):
    print("1")
else:
    while a!=1:
        if (a%div_num)==0:
            cnt += 1
            a //= div_num
        else:
            if cnt:
                print("%d^%d * "%(div_num, cnt),end='') if cnt>1 else print("%d * "%(div_num),end='')
            div_num += 1
            cnt=0
   
    print("%d^%d"%(div_num, cnt)) if cnt>1 else print("%d"%(div_num))

先處理2,後面都只剩奇數 處理時間從200ms => 89ms

a = int(input())
if (a==1):
    print("1")
else:
    div_num = 2
    cnt=0
    while (a%div_num)==0:
        cnt += 1
        a //= div_num
    if a>1:
        if cnt:
            print("%d^%d * "%(div_num, cnt),end='') if cnt>1 else print("%d * "%(div_num),end='')
            cnt = 0

        div_num = 3
        while a!=1:
            if (a%div_num)==0:
                cnt += 1
                a //= div_num
            else:
                if cnt:
                    print("%d^%d * "%(div_num, cnt),end='') if cnt>1 else print("%d * "%(div_num),end='')
                div_num += 2
                cnt=0
   
    print("%d^%d"%(div_num, cnt)) if cnt>1 else print("%d"%(div_num))
 
ZeroJudge Forum