Distinct Powers
Consider all integer combinations of for and :If they are then placed in numerical order, with any repeats removed, we get the following sequence of distinct terms:
How many distinct terms are in the sequence generated by for and ?
이고 인 를 가지고 만들 수 있는 중에서 중복값을 제외한 개수를 구하는 문제이다.
내가 생각한 구현 방식은 다음과 같다.
set
을 활용.set
에 추가해준다.len(set)
을 통해 개수를 출력해준다.간단하니 한번에 구현해보자.
# 2 ≤ a ≤ n, 2 ≤ b ≤ n의 범위에서 a^b의 개수를 구해주는 함수.
def distinct_powers(n):
distinct_terms = set()
numbers = range(2, n + 1)
for a in numbers:
for b in numbers:
distinct_terms.add(a**b)
return len(distinct_terms)
print(distinct_powers(100))
>>> 9183 #correct
gpt 선생님도 이 코드는 매개변수 n에 모호함과 주석의 추가만을 지적하셨다. 더 직관적으로 max_value
와 같은 이름을 사용하고 해당 코드의 목적과 로직을 설명하는 주석을 추가하는 것을 권장한다고 한다.
오늘은 여기까지
-2025.01.18-