Finished existing ipython solutions to python. Ready to continue in pure python.
This commit is contained in:
@@ -1,8 +1,55 @@
|
||||
from itertools import combinations
|
||||
from lib_prime import primes, is_prime
|
||||
|
||||
|
||||
def concatenate_all(numbers):
|
||||
result = []
|
||||
for a, b in combinations(numbers, 2):
|
||||
result.append([a, b])
|
||||
result.append([b, a])
|
||||
return result
|
||||
|
||||
|
||||
def concatentation_is_prime(a, b):
|
||||
ab = int(str(a) + str(b))
|
||||
ba = int(str(b) + str(a))
|
||||
if is_prime(ab) and is_prime(ba):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def euler_060():
|
||||
return 0
|
||||
""" Hahaha. I have no idea what I was thinking
|
||||
when writing this code. Beautiful! """
|
||||
potentials = []
|
||||
new_potentials = []
|
||||
done = False
|
||||
for p in primes(100000):
|
||||
if done:
|
||||
break
|
||||
potentials += new_potentials
|
||||
new_potentials = []
|
||||
for potential in potentials:
|
||||
all_concatenations_prime = True
|
||||
for prime in potential:
|
||||
if not concatentation_is_prime(p, prime):
|
||||
all_concatenations_prime = False
|
||||
break
|
||||
if all_concatenations_prime:
|
||||
new_potential = list(potential)
|
||||
new_potential.append(p)
|
||||
if len(new_potential) > 4:
|
||||
# print(new_potential)
|
||||
s = sum(new_potential)
|
||||
done = True
|
||||
break
|
||||
new_potentials.append(new_potential)
|
||||
if p < 15:
|
||||
potentials.append([p])
|
||||
return s
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("e060.py: " + str(euler_060()))
|
||||
assert(euler_060() == 0)
|
||||
assert(euler_060() == 26033)
|
||||
|
||||
Reference in New Issue
Block a user