알고리즘/연습문제

[프로그래머스] 약수의 합 - 파이썬

의탕 2020. 11. 11. 10:46

문제


programmers.co.kr/learn/courses/30/lessons/12928

 

코딩테스트 연습 - 약수의 합

정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수

programmers.co.kr

 


문제설명


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

 

제한 사항

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

입출력 예

n return
12 28
5 6

 


접근


약수란 정수 A를 나눴을때 나누어 떨어지는 수들의 집합이다.

예를 들면 10의 약수는 : 1,2,5,10 인 것을 알 수 있다

 

위 내용을 토대로 코드를 작성하면 간단하게 풀수있다.

 


풀이


def solution(n):
    answer = 0
    
    if n==1: return 1			#n이 1이면 1리턴
    
    for i in range(1, n+1):		# 1에서 n까지 반복
        if n%i==0: answer+=i	# n 이 i로 나눠떨어지면 answer에 더해줌
    
    return answer

마침


질문이 있다면 댓글로 문의바랍니다~