DHistory
[Programmers] Level 1 - 약수의 개수와 덧셈 본문
문제
풀이
"""
약수의 개수가 짝수인 경우 => +
약수의 개수가 홀수인 경우 => -
"""
def solution(left, right):
answer = 0
for number in range(left, right + 1):
count = count_divisor(number)
if count % 2 == 0:
answer += number
else:
answer -= number
return answer
def count_divisor(number):
count = 0
for i in range(1, int(number**(1/2)) + 1):
if number % i == 0:
if i == number**(1/2):
count += 1
else:
count += 2
return count
채점 결과
풀이 (리팩토링)
def solution(left, right):
return sum(
[-number if int(number**(1/2)) == number**(1/2) else number for number in range(left, right + 1)]
)
채점 결과
'Computer Science > Algorithm' 카테고리의 다른 글
[Programmers] Level 1 - 음양 더하기 (0) | 2023.08.03 |
---|---|
[Programmers] Level 1 - 로또의 최고 순위와 최저 순위 (0) | 2023.08.03 |
[Programmers] Level 1 - 숫자 문자열과 영단어 (0) | 2023.08.03 |
[Programmers] Level 1 - 부족한 금액 계산하기 (0) | 2023.08.03 |
[Programmers] Level 1 - 없는 숫자 더하기 (0) | 2023.08.03 |