본문 바로가기
알고리즘/프로그래머스

[C++] 약수의 합(연습문제)

by 민-Zero 2020. 4. 12.

문제의 목표는 주어진 수 n의 모든 약수에 대한 합을 반환하면 되는 간단한 문제이다. 이때 약수에는 자기 자신까지 포함된다. 즉, n=7이라면 약수는 1, 7로 약수를 모두 더한 8을 반환하면 된다.

 

구현 및 설계

구현을 위해 주어진 함수는 반환 타입 int를 가지며 약수들을 구해 합을 구해야 할 정수 n을 매개변수로 가진다. 구현 내용은 파이썬에서 생각했으므로 바로 구현하자.

① n의 최대 약수인 n/2까지의 모든수들을 n과 나누어 나머지가 0인지 확인

② 나머지가 0이라면 결과값에 더하기

 

①은 반복문을 통해 간단히 수행할 수 있다. 이때 반복문 안에서 나머지가 0인지 확인하면 된다.

②를 수행하기 위해 반환할 변수에 n값을 할당하고 앞선 조건을 만족하면 누적하여 다하고 반환한다. 반복문이 n/2까지만 돌아가기 때문에 무조건 약수인 자기 자신을 포함하기 위해서 이다.

 

위의 코드를 통해 채점을 통과할 수 있었다.

댓글