N

(프로그래머스 c++)약수의 개수와 덧셈 본문

프로그래머스 알고리즘/1단계

(프로그래머스 c++)약수의 개수와 덧셈

naeunchan 2021. 6. 8. 09:58
728x90
반응형

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

 

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

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

programmers.co.kr

 

 

#include <string>
#include <vector>
#include <iostream>
#include <cmath>

using namespace std;

int getCount(int n){
    int count = 0;
    
    for(int i = 1; i <= sqrt(n); i++){
        if(n % i == 0){
            if(n / i == i){
                count++;
            }
            else{
                count += 2;
            }
        }
    }
    
    return count;
}

int solution(int left, int right) {
    int answer = 0;
    
    for(int i = left; i <= right; i++){
        if(getCount(i) % 2){
            answer -= i;
        }
        else{
            answer += i;
        }
    }
    
    return answer;
}
728x90
반응형