Ок, публикуваха решението:
https://research.ibm.com/haifa/ponderthis/solutions/March2023.htmlПубликувам тук моето решение на Python:
- Код: Избери целия код
import sympy as sp
maxnumber = 0
def prime_chain(p, e=0, numdigits=1):
global maxnumber
if not sp.isprime(p):
e += 1
if e > 5:
return
if p > maxnumber:
maxnumber = p
for i in range(10):
p2 = p * 10 + i
prime_chain(p2, e, numdigits + 1)
if __name__ == "__main__":
prime_chain(3)
print(maxnumber)
Това ще работи няколко часа преди да даде резултат. Нормално Python e лош избор за писане на код за heavy computation tasks, но тук повечето работа се върши от sp.isprime(p) което e C extention. Аналогична програма на C++ ще свърши само около 2 пъти по-бързо.