약수의 개수가 홀수 인 수는 그 수가 제곱수이면 약수의 개수가 홀수이다.
따라서 제곱수면 빼고 아니면 더하면 된다.
제곱수를 구한 방법은 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;
}
'Coding_Test 연습 > Programmers' 카테고리의 다른 글
[프로그래머스] (C++) LV1 예산 (0) | 2022.04.21 |
---|---|
[프로그래머스] (C++) LV1 3진법 뒤집기 (0) | 2022.04.20 |
[프로그래머스] (C++) LV1 실패율 (0) | 2022.04.17 |
[프로그래머스] (C++) LV1 폰켓몬 (0) | 2022.04.16 |
[프로그래머스] (C++) LV1 체육복 (0) | 2022.04.15 |