コード例 #1
0
ファイル: problem047.py プロジェクト: kju2/euler
def main():
    """
    >>> main()
    134043
    """
    primes = Primes(10 ** 6)

    min_consecutive_valid_numbers = 4
    distinct_prime_factors = 4

    # next number after lower bound has to have at least distinct_prime_factors
    # of odd primes as prime factors
    lower_bound = (3 * 5 * 7 * 11) - 1

    number = 0
    consecutive_valid_numbers_count = 0

    for number in count(lower_bound):
        if consecutive_valid_numbers_count == min_consecutive_valid_numbers:
            break

        if len(set(primes.factors_of(number))) == distinct_prime_factors:
            consecutive_valid_numbers_count += 1
        else:
            consecutive_valid_numbers_count = 0

    # print first number of the consecutive numbers
    print(number - distinct_prime_factors)
コード例 #2
0
ファイル: problem003.py プロジェクト: kju2/euler
def main():
    """
    >>> main()
    6857
    """
    number = 600851475143

    primes = Primes(10 ** 6)

    print(max(primes.factors_of(number)))