약수의 개수와 덧셈 - Python
2023. 10. 14. 04:05ㆍ공부/📝 프로그래머스
1. 풀이 코드
def divisor(n):
count = 1
for i in range(1, n // 2 + 1):
if n % i == 0:
count += 1
return count
def solution(left, right):
return sum([item if divisor(item) % 2 == 0 else -item for item in range(left, right + 1)])
# Test Cases
print(solution(13, 17))
print(solution(24, 27))
위와 같이 새로운 함수 divisor()을 선언하여 풀었습니다. 약수의 개수를 직접 카운트합니다.
2. 다른 사람의 풀이 코드
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
수학적 아이디어가 참신하네요. 약수의 개수가 홀수인 수는 제곱수밖에 없다는 걸 정말 잘 이용했습니다.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
문자열 다루기 기본 - Python (0) | 2023.10.14 |
---|---|
부족한 금액 계산하기 - Python (0) | 2023.10.14 |
수박수박수박수박수박수? - Python (0) | 2023.10.13 |
가운데 글자 가져오기 - Python (0) | 2023.10.13 |
제일 작은 수 제거하기 - Python (0) | 2023.10.11 |