접근 방법
- 약수의 개수가 홀수인 수는 어떤 수의 제곱수
- 제곱수만 찾아 빼주고 나머지는 더하기
- sqrt(i) 와 int(sqrt(i))가 같으면 제곱수
#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++){
sqrt(i) == (int)sqrt(i) ? answer -= i : answer += i;
}
return answer;
}
import math
def solution(left, right):
answer = 0
for i in range(left, right+1):
if math.sqrt(i) == int(math.sqrt(i)):
answer -= i
else:
answer += i
return answer
def solution(left, right):
answer = 0
for i in range(left,right+1):
if int(i**0.5)==i**0.5:
answer -= i
else:
answer += i
return answer
math의 sqrt 대신 0.5 제곱을 사용해도 됨!!