Files
project-euler/src/Python/Problems001-050/Problem049.py
David Doblas Jiménez 7c8165d9c2 Clean-up
2021-09-20 17:53:15 +02:00

41 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""
Created on 18 Sep 2021
@author: David Doblas Jiménez
@email: daviddoji@pm.me
Solution for problem 49 of Project Euler
https://projecteuler.net/problem=49
"""
from utils import timeit, list_primes
@timeit("Problem 49")
def compute():
"""
The arithmetic sequence, 1487, 4817, 8147, in which each of the terms
increases by 3330, is unusual in two ways:
(i) each of the three terms are prime, and,
(ii) each of the 4-digit numbers are permutations of one another.
There are no arithmetic sequences made up of three 1-, 2-, or 3-digit primes,
exhibiting this property, but there is one other 4-digit increasing sequence.
What 12-digit number do you form by concatenating the three terms in this sequence?
"""
ans = []
primes_list = sorted(set(list_primes(10_000)) - set(list_primes(1_000)))
for number in primes_list:
if set(list(str(number))) == set(list(str(number+3330))) == set(list(str(number+6660))):
if number+3330 in primes_list and number+6660 in primes_list:
ans.append(str(number)+str(number+3300)+str(number+6660))
# return the second one
return ans[1]
if __name__ == "__main__":
print(f"Result for Problem 49: {compute()}")