wrestА Вы видели реализацию isprime() в коде? Там же проверка всех делителей до корня!

Даже не на простые, тупо на все нечётные. Неудивительно что считает 10 минут.
RyzlХотя в sympy есть готовая и достаточно правильная isprime(). А ещё просто prevprime() оттуда же. И с ними всё считается мгновенно, покажу код на PARI:
Код:
? n=10^20; b=n; while(1, b=precprime(b-1); if(isprime(n-b), print(n-b,"+",b,"=",n); break); );
11+99999999999999999989=100000000000000000000
? ##
*** last result computed in 0 ms.
? n=10^50; b=n; while(1, b=precprime(b-1); if(isprime(n-b), print(n-b,"+",b,"=",n); break); );
383+99999999999999999999999999999999999999999999999617=100000000000000000000000000000000000000000000000000
? ##
*** last result computed in 0 ms.
На Питон переводят желающие, обе нужные функции (isprime, prevprime) есть в sympy.
А если уж проверять большой интервал, то надо использовать решето и прямо по нему и проверять простоту больших чисел. Меньшие хранить отдельно, их надо то пару тысяч (до примерно 10-20 тысяч, до 4e18 точно хватает простых до 10000). И скорость будет ограничена фактически скоростью решета.
Сейчас на Google Colab я ищу претендента на простое число в диапазоне от 10^{50000}/2 до 10^{50000}
Извращение. Делается одной командой nextprime() или prevprime(), обе из sympy.