본문 바로가기
문제 풀이/프로그래머스 (Programmers)

[C++] 프로그래머스 : 약수의 개수와 덧셈

by 희조당 2021. 9. 13.
728x90

https://programmers.co.kr/learn/courses/30/lessons/77884?language=cpp 

 

코딩테스트 연습 - 약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주

programmers.co.kr


 문제 풀이

시작값부터 종료값까지의 약수의 개수만 카운트해주면 되는 문제이다.

 느낀 점

입력값의 범위가 매우 작아서 단순한 브루트 포스로 해결할 수 있었다, 쉬운 문제라서 많이 고민하지 않았다.

 코드

using namespace std;

int solution(int left, int right) {
    int answer = 0;
    for (int i = left; i <= right;i++) {
        int cnt = 1;
        for (int j = 2; j <= i;j++) {
            if (i % j == 0) cnt++;
        }
        if (cnt % 2 == 0) answer += i;
        else answer -= i;
    }
    return answer;
}

댓글