코딩테스트
[프로그래머스][Python] 약수의 개수와 덧셈 (약수의 개수가 짝수인지 홀수인지 판별하기)
EEEUN
2022. 10. 7. 18:58
import math
def solution(left, right):
answer = 0
for i in range(left, right+1) :
sqrt = math.sqrt(i)
if int(sqrt) == sqrt :
answer -= i
else :
answer += i
return answer
제곱수는 약수의 개수가 홀수이고, 제곱수를 제외한 모든 수는 약수의 개수가 짝수이다.
ex) 9의 약수의 개수 : 3개, 6의 약수의 개수 : 4개
n의 제곱근을 구하고 int(제곱근)와 제곱근이 같다면, n은 제곱수이다. 그렇다면 n의 약수의 개수는 홀수라는 것을 알 수 있다.