Solution to problem 47
This commit is contained in:
parent
abde258afa
commit
fb87f1c9e3
60
src/Python/Problem047.py
Normal file
60
src/Python/Problem047.py
Normal file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Created on 12 Sep 2021
|
||||
|
||||
@author: David Doblas Jiménez
|
||||
@email: daviddoji@pm.me
|
||||
|
||||
Solution for problem 47 of Project Euler
|
||||
https://projecteuler.net/problem=47
|
||||
"""
|
||||
|
||||
from utils import timeit
|
||||
|
||||
def factor(n):
|
||||
ans = []
|
||||
d = 2
|
||||
while d * d <= n:
|
||||
if n % d == 0:
|
||||
ans.append(d)
|
||||
n //= d
|
||||
else:
|
||||
d += 1
|
||||
if n > 1:
|
||||
ans.append(n)
|
||||
return ans
|
||||
|
||||
@timeit("Problem 47")
|
||||
def compute():
|
||||
"""
|
||||
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?
|
||||
"""
|
||||
ans = []
|
||||
|
||||
for number in range(1, 1_000_000):
|
||||
if len(ans) == 4:
|
||||
break
|
||||
elif len(set(factor(number))) == 4:
|
||||
ans.append(number)
|
||||
else:
|
||||
ans = []
|
||||
|
||||
return ans[0]
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
print(f"Result for Problem 47: {compute()}")
|
Loading…
x
Reference in New Issue
Block a user