[프로그래머스] 약수의 개수와 덧셈 Lv.1 - [파이썬/python]
https://school.programmers.co.kr/learn/courses/30/lessons/77884
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 반환(return)하는 문제입니다.
※ 제한사항
- 1 ≤ left ≤ right ≤ 1,000
더보기
- 1. "약수의 개수"와 "완전제곱수"에 대한 관계를 알면 쉽게 풀 수 있습니다.
- 1번 힌트 공부 하러가기
완전제곱수 | 약수의 개수 홀짝 규칙
"약수의 개수"와 "제곱근" 사이의 흥미로운 관계를 알고 계신가요? "완전제곱수"라는 개념을 통해 이 관계를 자세히 알아보도록 하겠습니다. 완전제곱수는 어떤 정수의 제곱으로 표현되는 수를
1ets-just-do-it.tistory.com
정답 주의!!!

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 |