コード例 #1
0
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]
コード例 #2
0
ファイル: problem80.py プロジェクト: SanyaShilov/ProjectEuler
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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
def main():
    return max(
        euler.digit_sum(a**b) for a in range(1, 100) for b in range(1, 100))
コード例 #6
0
ファイル: poker_wins.py プロジェクト: adamacosta/euler
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)])
コード例 #7
0
ファイル: poker_wins.py プロジェクト: adamacosta/euler
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)])