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)
def main(): """ >>> main() 6857 """ number = 600851475143 primes = Primes(10 ** 6) print(max(primes.factors_of(number)))