>정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
def solution(n):
answer = 0
for i in range(1, int(n**0.5) + 1):
if n % i == 0:
answer += i
if i != n // i:
answer += n // i
return answer
➡️def solution(n)으로 임의의 변수 n에 대한 식을 만들었고, 초기 값을 0으로 했습니다. 이때 처음에는 n**0.5가 아니라 n%i == 0으로 했더니 오류가 났습니다. 그래서 왜 그런가 곱씹어 보니 인수를 구할 수는 있지만 그 인수의 합은 구할 수 없어서 답이 되지 않았습니다. 그런데 n**0.5로 제곱근을 구하고 1을 더한다면 제곱근을 기준으로 양쪽은 대칭이므로 한쪽을 구하면 나머지 한쪽도 구할 수 있습니다. 이때 이 방법만 이용하면 9와 같은 제곱수에서 오류가 발생하므로 if i !=n//i: answer += n//i를 넣어 줌으로써 모든 수에 대해 인수의 합을 구할 수 있습니다.