А если заменить множитель на 510510, то поиск ускорится почти в 5 раз (какие строки изменить в программе):
Код:
p=[1427, 2813, 4157, 15553, 15683, 23033, 28423, 32843, 35573, 36847, 44327, 47473, 49717, 57067, 61487, 64217, 66877, 69607, 74357, 75743, 77087, 88483, 92903, 94247, 95633, 105773, 107533, 108503, 109777, 120403, 125663, 126937, 129667, 134417, 137147, 137563, 139807, 140293, 142537, 146957, 154307, 159697, 165833, 167177, 168563, 180463, 185723, 197623, 198593, 199867, 200353, 202597, 207017, 210493, 213223, 217643, 219757, 219887, 227237, 230383, 232627, 237047, 239777, 251677, 258653, 270553, 273283, 277703, 279947, 283093, 290443, 290573, 292687, 297107, 299837, 303313, 307733, 309977, 310463, 311737, 312707, 324607, 329867, 341767, 343153, 344497, 350633, 356023, 363373, 367793, 370037, 370523, 372767, 373183, 375913, 380663, 383393, 384667, 389927, 400553, 401827, 402797, 404557, 414697, 416083, 417427, 421847, 433243, 434587, 435973, 440723, 443453, 446113, 448843, 453263, 460613, 462857, 466003, 473483, 474757, 477487, 481907, 487297, 494647, 494777, 506173, 507517, 508903];
s=floor(100000*10^12/510510)*510510
{forstep(k=s,s+2000000*510510,510510,
for(i=1,128,n=k+p[i];