오답노트

프로그래머스 1단계 - 약수의 개수와 덧셈 본문

C,C++/코딩테스트

프로그래머스 1단계 - 약수의 개수와 덧셈

권멋져 2022. 5. 29. 18:47
https://programmers.co.kr/learn/courses/30/lessons/77884?language=cpp 
 

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

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

programmers.co.kr

- 문제 파악

두 개의 정수가 주어지고 두 정수를 포함한 사이의 정수들의 약수의 개수가 짝수이면 정수를 더하고, 홀수이면 정수를 뺄 때, 두 정수를 포함한 사이의 정수들을 연산한 결과를 출력하라.

 

 

- 정답

#include "bits/stdc++.h"

using namespace std;

int solution(int left, int right) {
    int answer = 0;
       
    for(int i = left ; i <= right ; i++)
    {
        int nCnt = 1;
        for(int j = 1 ; j <= i/2 ; j++)
        {
            if(i%j == 0)            
                nCnt++;
        }  

        
        if(nCnt % 2 == 0)
            answer += i;
        else
            answer -= i;
    }
    
    return answer;
}