From e2622048f996d6fdd7252adea10cf16880807bff Mon Sep 17 00:00:00 2001 From: felixm Date: Mon, 30 Oct 2023 20:35:27 -0400 Subject: [PATCH] Solve problem 119. --- python/e119.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 python/e119.py diff --git a/python/e119.py b/python/e119.py new file mode 100644 index 0000000..98db2d0 --- /dev/null +++ b/python/e119.py @@ -0,0 +1,31 @@ +def digit_sum(n: int) -> int: + return sum(map(int, str(n))) + + +def is_digital_power_sum(base: int, power: int): + if digit_sum(base ** power) == base: + return True + return False + + +def get_nth_power_sum(n: int): + power_sums = [] + for base in range(2, 600): + for power in range(2, 50): + if is_digital_power_sum(base, power): + power_sums.append(base ** power) + power_sums = sorted(power_sums) + return power_sums[n - 1] + + +def euler_119(): + assert(is_digital_power_sum(28, 4) == True) + assert(get_nth_power_sum(2) == 512) + assert(get_nth_power_sum(10) == 614656) + return get_nth_power_sum(30) + + +if __name__ == "__main__": + solution = euler_119() + print("e119.py: " + str(solution)) + assert(solution == 248155780267521)