약수의 합

김나영·2023년 6월 20일
0

프로그래머스

목록 보기
21/39

문제 : 약수의 합

풀이

for (int i = 1; i <= n; i++) {}
  • 약수는 1부터 n까지 순회
if(n % i == 0) {
  answer += i;
}  
  • 나머지가 0이면 약수이므로 answer에 값을 더해줌

전체 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        for (int i = 1; i <= n; i++) { // 약수는 1부터 n까지
            if(n % i == 0) { // 나머지가 0인 경우
                answer += i; // answer에 더한 후 저장
            }
        }
        return answer;
    }
}

또 다른 풀이

public static int measure(int n){
        int answer = 0;
        for(int i = 1; i <= Math.sqrt(n); i++){
            if(n % i == 0){
                answer += i;
                if(n / i != i) // 제곱근이 아닐 때
                    answer += (n/i);
            }
        }
        return answer;

0개의 댓글