정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
n | return |
---|---|
12 | 28 |
5 | 6 |
입출력 예 #1
12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
입출력 예 #2
5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.
def solution(n):
sol = 0
for i in range(1, n+1):
if n % i == 0:
sol += i
return sol
sol = 0
전체 합을 구해서 저장할 변수를 선언
for문
for문을 입력받은 수까지 돌면서 (자기자신까지 포함해야 약수를 구하므로) 나머지가 0이 되는 수를 계속 저장해준다. 그러면 전체 약수를 더할 수 있다.
개인적으로 시도하고 싶었던 컴프리헨션 코드
def sumDivisor(num):
return sum([i for i in range(1,num+1) if num%i==0])
조건에 맞는 i를 리스트로 받아서 다 더해주면 약수를 다 더한게 된다. 다음에는 컴프리헨션으로 해결해봐야지
다른 코드도 참고할 수 있었는데 약수를 공식화 한 코드는 추후에 더 이해하는걸로... 일단 파이썬을 잊지 않고 코드를 작성해보는게 목표기 때문에!