코딩 뚝딱이

[프로그래머스] 연습문제 : 약수의 합 [Python] 본문

알고리즘&코딩테스트/Python 코테

[프로그래머스] 연습문제 : 약수의 합 [Python]

Desiree 이나 2023. 3. 24. 17:47

 LV2  < 약수의 합 >

■ 문제 설명

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

 

■ 제한 조건

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

■ 입출력 예

n return
12 28
5 6

■ 기본 제공 틀 (Python)

def solution(n):
    answer = 0
    return answer

                             ▼   A N S W E R                               


■ 내 풀이 (Python)

def solution(n):
    answer = 0
    for i in range(1, n+1):
        if n % i == 0:
            answer += i
    return answer

 

■ 내 풀이 설명 (Python)

※ 약수란? 어떤 수를 나누어떨어지게 하는 수

따라서, 1 부터 n까지의 범위에서 i가 돌아갈 때, n을 i로 나눴을 때의 나머지가 0이라면, i는 n의 약수이다.

예) 6의 약수는 1, 2, 3, 6

------------------------------------------------------------------------------------------------------------------------------------------------------

파이썬 산술연산자 7가지

1. 덧셈 ( + )     # 문자열도 가능

2. 뺄셈 ( - )

3. 곱셈 ( * )     # 문자열도 가능

4. 나눗셈 ( / )

5. 거듭제곱 ( ** )

6. 몫 ( // )

7. 나머지 ( % )

------------------------------------------------------------------------------------------------------------------------------------------------------

위의 산술연산자 중 7. 나머지 ( % ) 를 사용하여 코드를 짜보면 아래와 같다.

    for i in range(1, n+1):
        if n % i == 0:
        	answer += i     # i가 n의 약수일 때, answer에 그 값들을 더해준다

 

 

- 끝 -