Project Euler Solution 56: Powerful digit sum

Problem 56: Powerful digit sum is pretty disappointing with Python's arbitrary large integers.

A googol ($10^{100}$) is a massive number: one followed by one-hundred zeros; $100^{100}$ is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.

Considering natural numbers of the form, $a^b$, where $a, b < 100$, what is the maximum digital sum?

We can just compute all these numbers, take the digit sum, and take the maximum:

def digit_sum(number: int) -> int:
    return sum(map(int, str(number)))


def solution_naive() -> int:
    return max(digit_sum(a**b) for a in range(1, 100) for b in range(1, 100))

This even runs in 71 ms, so that is fast enough.