문제의 목표는 주어진 수 n의 모든 약수에 대한 합을 반환하면 되는 간단한 문제이다. 이때 약수에는 자기 자신까지 포함된다. 즉, n=7이라면 약수는 1, 7로 약수를 모두 더한 8을 반환하면 된다.
구현 및 설계
구현을 위해 주어진 함수는 반환 타입 int를 가지며 약수들을 구해 합을 구해야 할 정수 n을 매개변수로 가진다. 구현 내용은 파이썬에서 생각했으므로 바로 구현하자.
① n의 최대 약수인 n/2까지의 모든수들을 n과 나누어 나머지가 0인지 확인
② 나머지가 0이라면 결과값에 더하기
①은 반복문을 통해 간단히 수행할 수 있다. 이때 반복문 안에서 나머지가 0인지 확인하면 된다.
②를 수행하기 위해 반환할 변수에 n값을 할당하고 앞선 조건을 만족하면 누적하여 다하고 반환한다. 반복문이 n/2까지만 돌아가기 때문에 무조건 약수인 자기 자신을 포함하기 위해서 이다.
위의 코드를 통해 채점을 통과할 수 있었다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[C++] 시저 암호(연습문제) (0) | 2020.05.03 |
---|---|
[python] 시저 암호(연습문제) (0) | 2020.05.03 |
[python] 약수의 합(연습문제) (0) | 2020.04.12 |
[C++] 문자열을 정수로 바꾸기(연습문제) (0) | 2020.04.05 |
[python] 문자열을 정수로 바꾸기(연습문제) (0) | 2020.04.05 |
댓글