Пример #1
0
Файл: euler.py Проект: jdp/euler
def euler_65():
    """Find the sum of digits in the numerator of the 100th convergent of the continued fraction for e."""
    from eutil import nth, digits

    def sequence():
        num = []
        t = 0
        while True:
            if t == 0:
                num.append(1)
            elif t == 1:
                num.append(2)
            else:
                coef = t / 3 * 2 if t % 3 == 0 else 1
                num.append(coef * num[t - 1] + num[t - 2])
            yield num[-1]
            t += 1

    return sum(digits(nth(sequence(), 100)))
Пример #2
0
Файл: euler.py Проект: jdp/euler
 def multinomial(n):
     alphabet = dict([(d, digits(n).count(d)) for d in set(digits(n))])
     alphabet[0] = 7 - len(str(n))
     return factorial(sum(alphabet.values())) / reduce(mul, map(factorial, alphabet.values()))
Пример #3
0
Файл: euler.py Проект: jdp/euler
 def sum_sq_digits(n):
     return sum([x ** 2 for x in digits(n)])