Post

[월간 코드 챌린지 시즌2] 약수의 개수와 덧셈 (C++)

https://school.programmers.co.kr/learn/courses/30/lessons/77884

풀이

left와 right를 범위로 하는 반복문에서 약수의 개수를 구해준다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string>
#include <vector>

using namespace std;

int solution(int left, int right) {
    int sum = 0;
    for(int i = left; i <= right; i++){
        int cnt = 0;
        for(int j = 1; j <= i / 2; j++)
            if(i % j == 0)  cnt++;
        (cnt + 1) % 2 == 0 ? (sum += i) : (sum -= i);       // 자기 자신도 약수에 포함하기 때문에 cnt + 1
    }
    return sum;
}
This post is licensed under CC BY 4.0 by the author.