a=int(input())
for i in range(2,a+1):
s=0
b=a
d=0
if a%i==0:
for x in range(1,i+1):
if a%x==0:
d=d+x
if (d-1)/i==1:
d=0
print(i)
else:
s=0
b=a
d=0
continue
d=0
while(b>0):
if (b/i)%1==0:
s=s+1
b=b/i
else:
b=0
if b==1:
b=0
print(s)
可以的話,希望你註解一下各段程式在做什麼?我看到這邊就卡住了
for x in range(1,i+1): if a%x==0: d=d+x
這裡提供一個解題方向,以輸入 x
來說,要找到多個可整除 x 的數 a
,看會整除到幾次方,表示成 a^n
(n=1 時可省略 ^n
)
上述可以寫成
while x % a == 0: x //= a n += 1
後面要處理各個 a 之間的乘號 *
最後幾點提醒
print(i)
會在印出後立刻換行,可以改成 print(i, end='')
或用字串串接/
會給 float,要拿 int 的話請用雙斜線 //
要改的事情太多,還是改天吧(茶)