[Python] 약수의 합

쥬쥬스·2023년 8월 22일
0
post-thumbnail

문제

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.

제한 사항

  • n은 0 이상 3000이하인 정수입니다.

입출력 예

nreturn
1228
56
  • 입출력 예 #1
    12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.

  • 입출력 예 #2
    5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

Solution

def solution(n):
    sol = 0

    for i in range(1, n+1):
        if n % i == 0:
            sol += i
            
    return sol
  1. sol = 0
    전체 합을 구해서 저장할 변수를 선언

  2. for문
    for문을 입력받은 수까지 돌면서 (자기자신까지 포함해야 약수를 구하므로) 나머지가 0이 되는 수를 계속 저장해준다. 그러면 전체 약수를 더할 수 있다.

Other Solution

개인적으로 시도하고 싶었던 컴프리헨션 코드

def sumDivisor(num):
    return sum([i for i in range(1,num+1) if num%i==0])

조건에 맞는 i를 리스트로 받아서 다 더해주면 약수를 다 더한게 된다. 다음에는 컴프리헨션으로 해결해봐야지

다른 코드도 참고할 수 있었는데 약수를 공식화 한 코드는 추후에 더 이해하는걸로... 일단 파이썬을 잊지 않고 코드를 작성해보는게 목표기 때문에!

profile
느려도... 꾸준히.....🐌

0개의 댓글