프로그래머스 Level1-6 | 약수의 합

yuriyaam·2021년 1월 26일
0
post-thumbnail

문제

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

입출력 예

1) 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다.
2) 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다.

코드

static int solution(int n) {
	int answer = 0;

	for (int i = 1; i <= n; i++) {
		if (n % i == 0) {
			answer += i;
		}
	}
	return answer;
}

약수의 특징 중 하나.
자연수 n의 약수는 n/2보다 클 수 없다.
이러한 특징을 이용한 코드이다.

static int solution(int n) {
	int answer = 0;

	for (int i = 1; i <= n / 2; i++) {
		if (n % i == 0) {
			answer += i;
		}
	}

    	// 자연수 n의 약수는 자기자신도 포함하므로 반드시 더해주기
	answer += n;	
	return answer;
}

0개의 댓글