https://school.programmers.co.kr/learn/courses/30/lessons/77884
범위에서 약수가 짝수개인 수는 더하고 홀수개인 수는 빼기.
fun solution(left: Int, right: Int): Int =
(left..right).sumOf {
val rt = kotlin.math.sqrt(it.toDouble()).toInt()
if (rt * rt == it) -it else it }
처음 문제를 보면 약수를 모두 구해서 홀짝을 판별해야 한다고 생각할 수 있다.
하지만 대수적으로 생각해보면 약수를 구하지 않고도 문제를 해결할 수 있다.
약수는 쌍으로 나오므로, 홀수개가 되려면 제곱수여야만 가능하다.