while True:
try:
n=int(input())
ans=[]
if n!=1:
for i in range(2,n):
count=0
if n%i==0:
while n%i==0:
n=n//i
count+=1
if count==1:
ans.append(f"{i}")
else:
ans.append(f"{i}^{count}")
ans=" * ".join(ans)
print(ans)
except :
break
請問有甚麼可以改善的嗎?
while True:
try:
n=int(input())
ans=[]
if n!=1:
for i in range(2,n):
count=0
if n%i==0:
while n%i==0:
n=n//i
count+=1
if count==1:
ans.append(f"{i}")
else:
ans.append(f"{i}^{count}")
ans=" * ".join(ans)
print(ans)
except :
break請問有甚麼可以改善的嗎?
用遞迴的方法後就過了!!!
n=int(input())#輸入
ans=[]#紀錄達案用的list
for i in range(2,n+1):#i從2到n
cnt=0#次方數=0
if n==1:#如果輸入是1則跳出迴圈
break
def A(n,i,cnt):#建立一個方法A
if n%i==0:#如果n除以i的餘數為0
n=n//i#n=n除以i
cnt+=1#次方數加1
n=A(n,i,cnt)#執行方法A
else:##如果n除以i的餘數不為0
if cnt==0:#如果次方數不為0
pass#跳過
elif cnt==1:#如果次方數=1
ans.append(f"{i}")
else:#如果次方數不為0和1
ans.append(f"{i}^{cnt}")
return n #返回n
if n%i==0:#如果n除以i的餘數為0
n=A(n,i,cnt)#執行方法A
ans=" * ".join(ans)#將list裡的元素用" * "連接
print(ans) #印出ans