沒有太過分的求因數,小心避開當輸入為1、找因數的迴圈終點記得開根號處理,很多神奇的技巧如6n+1,6n-1,找因數的時候一次間隔兩個數....技巧都不需用上。
以下附上完整程式碼:
def t():
n = int(input())
if n == 1:
print(0)
return
p = int(n**0.5) + 1
total = 0
for i in range(1,p):
if n % i == 0:
j = n//i
if j == i or j == n:
total += i
else:
total += i + j
print(total)
t()
沒有留言:
張貼留言