def main(): lst = [] for i in range(2, 500): for j in range(2, 50): num = i**j if euler.digit_sum(num) == i: lst.append(num) lst.sort() return lst[LIMIT - 1]
def sqrt_digit_sum(n): sqrt = int(n**0.5) while len(str(sqrt)) < 100: n *= 100 sqrt *= 10 while sqrt**2 < n: sqrt += 1 sqrt -= 1 return euler.digit_sum(sqrt)
def main(): nom1, denom1 = 3, 1 nom2, denom2 = 8, 3 i = 3 step = 4 while True: for _ in range(2): nom1, denom1, nom2, denom2 = ( nom2, denom2, nom1 + nom2, denom1 + denom2 ) i += 1 if i == N: return euler.digit_sum(nom2) nom1, denom1, nom2, denom2 = ( nom2, denom2, nom1 + nom2 * step, denom1 + denom2 * step ) step += 2 i += 1 if i == N: return euler.digit_sum(nom2)
def main(): lst = [0 for _ in range(TEN)] for i in range(1, 10): lst[i] = 1 sums = [euler.digit_sum(a) for a in range(TEN)] for _ in range(LIMIT - 1): new_lst = [0 for _ in range(TEN)] for i in range(TEN): s = sums[i] n = (i % TEN1) * 10 for j in range(SUM + 1 - s + i // TEN1): new_lst[n + j] += lst[i] lst = new_lst return sum(lst)
def main(): return max( euler.digit_sum(a**b) for a in range(1, 100) for b in range(1, 100))
def max_digit_sum(a, b): """Input: Two natural numbers a and b. Output: The maximum digit sum of any number a ** b for a and b less than the inputs.""" return max([digit_sum(i**j) for i in range(1, a) for j in range(1, b)])