https://programmers.co.kr/learn/courses/30/lessons/77884
코딩테스트 연습 - 약수의 개수와 덧셈
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주
programmers.co.kr

풀이 과정

문제에서 주어진 입출력 예를 보다 보면 제곱수에서만 약수의 개수가 홀수가 됨을 깨달을 수 있다.
left <= N <= right인 모든 N에 대하여 제곱근이 정수이면 약수의 개수가 홀수, 정수가 아니면 약수의 개수가 짝수라고 판단할 수 있다.
소스 코드
def solution(left, right):
answer = 0
for number in range(left, right+1):
if number ** (1/2) == int(number ** (1/2)):
answer -= number
else:
answer += number
return answer
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 예산 [파이썬] (0) | 2022.05.26 |
---|---|
프로그래머스 - 3진법 뒤집기 [파이썬] (0) | 2022.05.11 |
프로그래머스 - 폰켓몬 [파이썬] (0) | 2022.05.09 |
프로그래머스 - 체육복 [파이썬] [자바스크립트] (0) | 2022.05.08 |
프로그래머스 - K번째수 [파이썬] [자바스크립트] (0) | 2022.05.08 |