약수의 개수가 홀수 인 수는 그 수가 제곱수이면 약수의 개수가 홀수이다.

따라서 제곱수면 빼고 아니면 더하면 된다.

제곱수를 구한 방법은 sqrt한 값이 정수가 되면 된다.

정수인지 확인하는법은 내림한 수와 sqrt가 같으면 정수라 판단하였다.

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

using namespace std;

int solution(int left, int right) {
    int answer = 0;

    for (int i = left; i <= right; i++)
    {
        if (sqrt(i) == round(sqrt(i)))
            answer -= i;
        else
            answer += i;
    }
    return answer;
}

+ Recent posts