[프로그래머스] 약수의 개수와 덧셈 Lv.1 - [파이썬/python]
https://school.programmers.co.kr/learn/courses/30/lessons/77884
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 반환(return)하는 문제입니다.
※ 제한사항
- 1 ≤ left ≤ right ≤ 1,000
더보기
- 1. "약수의 개수"와 "완전제곱수"에 대한 관계를 알면 쉽게 풀 수 있습니다.
- 1번 힌트 공부 하러가기
정답 주의!!!
def solution(left, right):
result = 0 # 결과값을 저장할 변수 초기화
# 주어진 범위 [left, right]의 모든 숫자에 대해서 반복
for i in range(left, right + 1):
# i의 약수의 개수가 홀수면 i는 완전제곱수(정수)이다.
# i는 완전제곱수(정수)일 경우 약수의 개수가 홀수이므로 결과값에서 i를 뺌
if int(i ** 0.5) == i ** 0.5:
result -= i
# 그렇지 않다면, i의 약수의 개수가 짝수인 것을 의미하므로 결과값에 i를 더함
else:
result += i
return result # 최종 결과값 반환
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 명예의 전당 (1) - Lv.1 (35) | 2023.08.30 |
---|---|
[프로그래머스] 비밀지도 - Lv.1 (37) | 2023.08.30 |
[프로그래머스] 두 정수 사이의 합 - Lv.1 (30) | 2023.08.23 |
[프로그래머스] 문자열 내 p와 y의 개수 - Lv.1 (24) | 2023.08.21 |
[프로그래머스] 삼총사 - Lv.1 (27) | 2023.08.20 |