Files
contests/047/main.py

68 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'''
The first two consecutive numbers to have two distinct prime factors are:
14 = 2 × 7
15 = 3 × 5
The first three consecutive numbers to have three distinct prime factors are:
644 = 2² × 7 × 23
645 = 3 × 5 × 43
646 = 2 × 17 × 19.
Find the first four consecutive integers to have four distinct prime factors each. What is the first of these numbers?
'''
import math
import numpy as np
def sieve(n):
assert n > 1
ns = [True] * n
for i in range(2, math.ceil(np.sqrt(n))):
if ns[i]:
j = pow(i, 2)
while j < n:
ns[j] = False
j = j + i
return [i for i,val in enumerate(ns) if val][2:]
def primeFactors(n, primes):
res = []
for p in primes:
if n % p == 0:
res.append(p)
while n % p == 0:
n /= p
return res
def main():
print("Hello this is Patrick")
end = 1000000
primeList = sieve(end)
primeSet = set(primeList)
consecs = 0
for n in range(100000, end):
if n not in primeSet:
if len(primeFactors(n, primeList)) == 4:
consecs += 1
else:
consecs = 0
else:
consecs = 0
if consecs == 4:
for i in range(n-3, n+1):
print(i, primeFactors(i, primeList))
break
if __name__ == "__main__":
main()