-
Java 프로그래머스 Lev.1 | 약수의 합코딩테스트/Lev.1 2024. 1. 7. 16:35
class Solution { public int solution(int n) { int answer = 0; for (int i = 1; i <= n; i ++) { if (n % i == 0) { answer += i; } } return answer; } }
// 약수 구하기 알고리즘 N: 10 1부터 10까지의 숫자로 10을 나눈다. 이때 나머지가 0이면 해당 수는 N의 약수 10 / 1 일때, 몫: 10, 나머지 0 / 따라서 1은 10의 약수 10 / 2 일때, 몫: 5, 나머지 0 / 따라서 2는 10의 약수 . . . 10 / 10 일때, 몫: 1, 나머지 0 / 따라서 10은 10의 약수
for (int i = 1; i <= n; i ++)
분모가 0이면 안되니까 i 는 1부터 시작하고, 1과 자기자신은 약수이므로 i < n이 아니라 i <= n
if (n % i == 0)
나머지가 0일 때 i는 n의 약수
answer += i; // answer = answer + i
약수의 합을 answer에 누적시킨다.