Digit Fifth Powers
Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits:As is not a sum it is not included.
The sum of these numbers is
Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.
각 자리 숫자를 5제곱해서 더했을 때 자기 자신이 되는 수들의 합을 구하는 문제이다.
우선 반복문을 활용할 예정인데 자리 숫자의 모든 숫자가 최댓값인 이고 각 자리 숫자를 5제곱해서 더한 값이 의 경우를 가정해보자.
이므로 일 경우의 최댓값은 이고 일 경우에 당연히 자리 숫자가 나오지 않으므로 조건에 맞는 수가 존재할 수 없다.
즉, 조건을 만족하는 수는 자리 이하이며, 그 중에서도 이하의 값을 가진다.
그렇다면 해당 범위를 통해 구현해보자.
def digit_fifth_powers():
numbers = []
# 1부터 9^5 * 6 (6자리 수 최대값)까지 확인
upper_limit = 9**5 * 6
for num in range(2, upper_limit):
digit_sum = 0
for digit in str(num):
digit_sum += int(digit)**5
if num == digit_sum:
numbers.append(num)
return sum(numbers)
print(digit_fifth_powers())
>>> 443839 #correct
코드가 간단해서 그런지 gpt 선생님도 지적을 하지 않으셨다.
오늘은 여기까지.
-2025.01.19-