Showing posts with label crypto. Show all posts
Showing posts with label crypto. Show all posts

Sunday, October 26, 2025

[hgtrowvn] reciprocals of odd numbers mod 2^n

odd numbers have multiplicative inverses modulo 2^n (even numbers do not).

? for(n=1, 8, print1(2^n,":"); for(j=1, 2^(n-1), i=2*j-1; print1(" ",lift(Mod(i,2^n)^-1))); print())

for example, in 4th line below, the reciprocals of 1 3 5 7 9 11 13 15 modulo 16 are 1 11 13 7 9 3 5 15 respectively.  the product of each number multiplied by its reciprocal is a number of the form 16N+1.

2: 1

4: 1 3

8: 1 3 5 7

16: 1 11 13 7 9 3 5 15

32: 1 11 13 23 25 3 5 15 17 27 29 7 9 19 21 31

64: 1 43 13 55 57 35 5 47 49 27 61 39 41 19 53 31 33 11 45 23 25 3 37 15 17 59 29 7 9 51 21 63

128: 1 43 77 55 57 35 69 111 113 27 61 39 41 19 53 95 97 11 45 23 25 3 37 79 81 123 29 7 9 115 21 63 65 107 13 119 121 99 5 47 49 91 125 103 105 83 117 31 33 75 109 87 89 67 101 15 17 59 93 71 73 51 85 127

256: 1 171 205 183 57 163 197 239 241 27 61 167 41 19 53 223 225 139 173 151 25 131 165 207 209 251 29 135 9 243 21 191 193 107 141 119 249 99 133 175 177 219 253 103 233 211 245 159 161 75 109 87 217 67 101 143 145 187 221 71 201 179 213 127 129 43 77 55 185 35 69 111 113 155 189 39 169 147 181 95 97 11 45 23 153 3 37 79 81 123 157 7 137 115 149 63 65 235 13 247 121 227 5 47 49 91 125 231 105 83 117 31 33 203 237 215 89 195 229 15 17 59 93 199 73 51 85 255

they look quite random, but there are some patterns, like some early (e.g., 11, 13, 57) and late numbers (e.g., 51, 85) persisting through several exponents.

the randomness is reminiscent of multiplicative inverse modulo a prime number.  however, prime numbers and powers of 2 are about as different as numbers can be.

the reciprocal of a reciprocal is itself, so most numbers pair with another (two-cycle).  however, 1, (2^(n-1) - 1), (2^(n-1) + 1), and (2^n - 1) (the last one equivalent to -1) are always their own inverses (one-cycle).

previously: it is possible to set up a Galois field of order 2^n so that all nonzero elements (not just the odd elements) have reciprocals.  the reduction operation becomes more complicated than integer modulo 2^n.

Wednesday, June 04, 2025

[sdmzsnne] unobvious composites

a multiplication table between pairs of small prime numbers:

* 13 17 19 23 29 31 37 41 43
13 169 221 247 299 377 403 481 533 559
17 221 289 323 391 493 527 629 697 731
19 247 323 361 437 551 589 703 779 817
23 299 391 437 529 667 713 851 943 989
29 377 493 551 667 841 899 1073 1189 1247
31 403 527 589 713 899 961 1147 1271 1333
37 481 629 703 851 1073 1147 1369 1517 1591
41 533 697 779 943 1189 1271 1517 1681 1763
43 559 731 817 989 1247 1333 1591 1763 1849

divisibility by 2, 3, 5, 11 can be checked by well known rules, and 7 can be checked by short division (requiring effort similar to checks of 3 and 11), so the table starts at 13.  it stops at the last prime (43) whose square is less than the cube of the smallest: (13^3 = 2197) < (47^2 = 2209).

45 table entries, after commutativity.

there are many non-obvious composites (without easy divisibility check) of similar size as entries in the table but not in the table above.  the smallest is 13*47 = 611, so the table contains all non-obvious composites only up to 610.

with that in mind, better is a list rather than a table.  below are the 43 non-obvious composites less than 1000:

169 = 13 * 13
221 = 13 * 17
247 = 13 * 19
289 = 17 * 17
299 = 13 * 23
323 = 17 * 19
361 = 19 * 19
377 = 13 * 29
391 = 17 * 23
403 = 13 * 31
437 = 19 * 23
481 = 13 * 37
493 = 17 * 29
527 = 17 * 31
529 = 23 * 23
533 = 13 * 41
551 = 19 * 29
559 = 13 * 43
589 = 19 * 31
611 = 13 * 47
629 = 17 * 37
667 = 23 * 29
689 = 13 * 53
697 = 17 * 41
703 = 19 * 37
713 = 23 * 31
731 = 17 * 43
767 = 13 * 59
779 = 19 * 41
793 = 13 * 61
799 = 17 * 47
817 = 19 * 43
841 = 29 * 29
851 = 23 * 37
871 = 13 * 67
893 = 19 * 47
899 = 29 * 31
901 = 17 * 53
923 = 13 * 71
943 = 23 * 41
949 = 13 * 73
961 = 31 * 31
989 = 23 * 43

the next entry would be 1003 = 17 * 59.

for divisibility and prime factorization, you only need to know one of the factors, probably the smaller one.

previously, on memorizing the primes less than 1000.  memorizing the composites this way seems competitive and also gets you useful prime factorization.

Monday, March 03, 2025

[wyhgtulu] nearby prime differences

start with a set of consecutive primes.  compute all pairs positive differences among the set, and count the number of times each difference occurs.

note that we are counting differences between primes not necessarily consecutive.  (in contrast, prime gaps, another well studied topic, are differences between consecutive primes.)

running through the differences of all pairs seems like it could be done cleverly faster than quadratic time, but I could not think of a way.  doing all pairs of sets of a million numbers took about half an hour in C++.

among the first 10 odd primes (3 5 7 11 13 17 19 23 29 31), below are the differences from most frequent to least frequent.  each parenthesized record has the format
(difference number-of-occurrences #rank)
where rank may be a range because of ties.  for ease of parsing output by machine, the rank is given as a range even if the range is just one number.

(6 6 #1-1); (2 5 #2-3); (12 5 #2-3); (4 4 #4-6); (8 4 #4-6); (10 4 #4-6); (14 3 #7-9); (16 3 #7-9); (18 3 #7-9); (20 2 #10-12); (24 2 #10-12); (26 2 #10-12); (22 1 #13-14); (28 1 #13-14);

below are the top 100 differences among all pairs of the first 100 odd primes 3 through 547.

(30 60 #1-1); (60 57 #2-2); (42 54 #3-4); (90 54 #3-4); (120 49 #5-5); (6 48 #6-11); (12 48 #6-11); (24 48 #6-11); (36 48 #6-11); (66 48 #6-11); (84 48 #6-11); (18 46 #12-12); (150 45 #13-13); (48 44 #14-16); (126 44 #14-16); (210 44 #14-16); (54 42 #17-18); (78 42 #17-18); (102 40 #19-19); (72 39 #20-21); (180 39 #20-21); (96 38 #22-24); (132 38 #22-24); (168 38 #22-24); (108 37 #25-27); (114 37 #25-27); (156 37 #25-27); (144 35 #28-29); (174 35 #28-29); (138 34 #30-33); (186 34 #30-33); (240 34 #30-33); (270 34 #30-33); (10 33 #34-37); (20 33 #34-37); (70 33 #34-37); (162 33 #34-37); (216 32 #38-38); (40 31 #39-40); (192 31 #39-40); (198 30 #41-45); (204 30 #41-45); (222 30 #41-45); (228 30 #41-45); (252 30 #41-45); (14 29 #46-49); (50 29 #46-49); (56 29 #46-49); (234 29 #46-49); (80 28 #50-53); (140 28 #50-53); (264 28 #50-53); (300 28 #50-53); (4 27 #54-57); (34 27 #54-57); (246 27 #54-57); (330 27 #54-57); (22 26 #58-61); (26 26 #58-61); (44 26 #58-61); (258 26 #58-61); (2 25 #62-66); (28 25 #62-66); (38 25 #62-66); (110 25 #62-66); (276 25 #62-66); (8 24 #67-75); (16 24 #67-75); (32 24 #67-75); (52 24 #67-75); (98 24 #67-75); (100 24 #67-75); (160 24 #67-75); (294 24 #67-75); (360 24 #67-75); (46 23 #76-85); (76 23 #76-85); (82 23 #76-85); (104 23 #76-85); (130 23 #76-85); (154 23 #76-85); (170 23 #76-85); (306 23 #76-85); (312 23 #76-85); (336 23 #76-85); (68 22 #86-91); (74 22 #86-91); (86 22 #86-91); (94 22 #86-91); (112 22 #86-91); (342 22 #86-91); (62 21 #92-98); (64 21 #92-98); (88 21 #92-98); (92 21 #92-98); (190 21 #92-98); (220 21 #92-98); (282 21 #92-98); (116 20 #99-108); (118 20 #99-108); (124 20 #99-108); (146 20 #99-108); (182 20 #99-108); (200 20 #99-108); (230 20 #99-108); (288 20 #99-108); (318 20 #99-108); (390 20 #99-108);

primorials occur commonly among differences.  here are the frequencies of primorial differences among the first 100 primes, extracted from above:

(2 25 #62-66); (6 48 #6-11); (30 60 #1-1); (210 44 #14-16);

I knew in advance that primorials would be common; the motivation for this project was to see what other numbers would be common.  like primorials, the answer turned out to be smooth numbers.  finding the high frequency prime differences feels a little like decoding the music of the primes: these are the strong wavelengths and their overtones.

top differences among the first 1000 odd primes 3 through 7927:

(210 521 #1-1); (420 496 #2-2); (630 486 #3-3); (330 468 #4-4); (840 467 #5-5); (30 454 #6-6); (1050 452 #7-7); (60 447 #8-8); (390 446 #9-9); (1260 445 #10-10); (510 444 #11-12); (660 444 #11-12); (120 442 #13-13); (90 439 #14-14); (150 435 #15-15); (570 433 #16-17); (780 433 #16-17); (180 432 #18-18); (240 431 #19-20); (1470 431 #19-20); (270 430 #21-22); (300 430 #21-22); (990 423 #23-23); (360 421 #24-24); (450 418 #25-26); (690 418 #25-26); (2310 415 #27-27); (480 412 #28-28); (84 410 #29-29); (870 409 #30-31); (1680 409 #30-31); (600 405 #32-32); (42 403 #33-36); (540 403 #33-36); (750 403 #33-36); (1170 403 #33-36); (126 402 #37-37); (930 400 #38-38); (546 399 #39-39); (462 397 #40-40); (1020 394 #41-42); (1890 394 #41-42); (720 390 #43-43); (1320 389 #44-44); (714 388 #45-48); (900 388 #45-48); (960 388 #45-48); (1140 388 #45-48); (336 386 #49-51); (924 386 #49-51); (1560 386 #49-51); (168 385 #52-53); (294 385 #52-53); (66 382 #54-54); (810 380 #55-55); (798 377 #56-57); (1650 377 #56-57); (252 376 #58-59); (1080 376 #58-59); (1230 375 #60-61); (2730 375 #60-61); (504 374 #62-63); (2100 374 #62-63); (1380 371 #64-64); (378 369 #65-67); (1200 369 #65-67); (1530 369 #65-67); (1110 368 #68-68); (1980 366 #69-69); (1092 364 #70-70); (132 361 #71-73); (1386 361 #71-73); (1440 361 #71-73); (672 360 #74-76); (966 360 #74-76); (1290 360 #74-76); (264 358 #77-80); (588 358 #77-80); (858 358 #77-80); (1410 358 #77-80); (204 357 #81-81); (78 356 #82-82); (156 355 #83-84); (396 355 #83-84); (198 354 #85-86); (1350 354 #85-86); (1500 353 #87-91); (1590 353 #87-91); (1710 353 #87-91); (1860 353 #87-91); (2040 353 #87-91); (756 351 #92-92); (882 350 #93-94); (1950 350 #93-94); (234 349 #95-95); (1620 348 #96-97); (2520 348 #96-97); (306 347 #98-98); (102 345 #99-100); (1740 345 #99-100);

primorials 1000:

(2 174 #890-897); (6 343 #103-106); (30 454 #6-6); (210 521 #1-1); (2310 415 #27-27);

among the first 10000 odd primes 3 through 104743:

(2310 4371 #1-1); (4620 4306 #2-2); (2730 4260 #3-3); (5460 4127 #4-4); (3570 4118 #5-5); (6930 4107 #6-6); (3990 4088 #7-7); (210 4058 #8-8); (840 4057 #9-9); (420 4032 #10-11); (9240 4032 #10-11); (630 4027 #12-12); (8190 4011 #13-13); (4830 4000 #14-14); (1890 3993 #15-15); (1470 3992 #16-16); (1260 3980 #17-17); (1050 3977 #18-18); (7140 3969 #19-19); (1680 3964 #20-20); (2100 3949 #21-22); (11550 3949 #21-22); (2940 3923 #23-23); (2520 3917 #24-24); (7980 3908 #25-25); (4290 3902 #26-26); (3150 3897 #27-27); (10920 3886 #28-28); (3780 3878 #29-29); (6090 3876 #30-30); (6510 3873 #31-31); (4200 3866 #32-32); (3360 3865 #33-33); (4410 3855 #34-34); (5040 3832 #35-35); (13860 3820 #36-36); (10710 3815 #37-37); (7770 3800 #38-38); (5250 3795 #39-39); (8610 3774 #40-40); (5670 3769 #41-41); (9660 3760 #42-42); (330 3759 #43-43); (5880 3750 #44-44); (660 3746 #45-45); (9030 3744 #46-46); (6300 3740 #47-48); (13650 3740 #47-48); (11970 3732 #49-49); (6720 3725 #50-50); (5610 3717 #51-51); (1320 3699 #52-53); (1980 3699 #52-53); (1170 3698 #54-54); (8580 3694 #55-55); (7350 3691 #56-56); (990 3689 #57-58); (9870 3689 #57-58); (390 3686 #59-59); (1650 3678 #60-60); (16170 3676 #61-61); (7560 3672 #62-62); (9450 3665 #63-63); (780 3655 #64-64); (1560 3653 #65-65); (6270 3652 #66-66); (14280 3649 #67-67); (16380 3648 #68-68); (6630 3646 #69-69); (8400 3645 #70-70); (12180 3642 #71-71); (8820 3631 #72-72); (2640 3626 #73-73); (2970 3625 #74-74); (11130 3614 #75-75); (18480 3611 #76-76); (7590 3603 #77-77); (3300 3602 #78-78); (1950 3593 #79-79); (3630 3590 #80-80); (3960 3588 #81-81); (10080 3587 #82-82); (14490 3582 #83-83); (570 3569 #84-85); (12390 3569 #84-85); (510 3567 #86-87); (13020 3567 #86-87); (1020 3564 #88-88); (10500 3563 #89-89); (10290 3555 #90-90); (7410 3550 #91-91); (1530 3547 #92-93); (2340 3547 #92-93); (19110 3545 #94-94); (12870 3538 #95-95); (3120 3537 #96-96); (11340 3535 #97-97); (5280 3534 #98-98); (11220 3531 #99-99); (1140 3530 #100-100);

primorials 10000:

(2 1270 #12834-12857); (6 2538 #1642-1643); (30 3449 #127-127); (210 4058 #8-8); (2310 4371 #1-1); (30030 3388 #167-167);

among the first 100000 odd primes 3 through 1299721 (there are no tied ranks):

(30030 38434 #1-1); (60060 37316 #2-2); (39270 37286 #3-3); (43890 36759 #4-4); (90090 36420 #5-5); (2310 36322 #6-6); (46410 36284 #7-7); (4620 36262 #8-8); (53130 36158 #9-9); (6930 36066 #10-10); (51870 36020 #11-11); (9240 35993 #12-12); (11550 35969 #13-13); (78540 35896 #14-14); (13860 35712 #15-15); (18480 35670 #16-16); (16170 35633 #17-17); (20790 35610 #18-18); (2730 35540 #19-19); (23100 35511 #20-20); (5460 35496 #21-21); (87780 35451 #22-22); (25410 35331 #23-23); (27720 35303 #24-24); (8190 35295 #25-25); (120120 35267 #26-26); (10920 35210 #27-27); (66990 35191 #28-28); (71610 35161 #29-29); (32340 35117 #30-30); (13650 35089 #31-31); (16380 35088 #32-32); (36960 35087 #33-33); (19110 35079 #34-34); (62790 35075 #35-35); (34650 35049 #36-36); (41580 34959 #37-37); (3570 34795 #38-38); (92820 34772 #39-39); (21840 34762 #40-40); (117810 34719 #41-41); (46200 34712 #42-42); (32760 34685 #43-43); (7140 34668 #44-44); (24570 34663 #45-45); (48510 34661 #46-46); (27300 34622 #47-47); (50820 34585 #48-48); (10710 34583 #49-49); (67830 34527 #50-50); (150150 34489 #51-51); (3990 34457 #52-52); (55440 34419 #53-53); (7980 34391 #54-54); (38220 34348 #55-55); (17850 34342 #56-56); (35490 34340 #57-57); (79170 34320 #58-58); (57750 34315 #59-59); (85470 34300 #60-60); (14280 34292 #61-61); (106260 34273 #62-62); (40950 34187 #63-63); (43680 34175 #64-64); (62370 34134 #65-65); (103740 34117 #66-66); (11970 34112 #67-67); (21420 34086 #68-68); (64680 34063 #69-69); (84630 34039 #70-70); (4830 34028 #71-71); (19950 34018 #72-72); (15960 34008 #73-73); (69300 33972 #74-74); (94710 33948 #75-75); (99330 33928 #76-76); (24990 33921 #77-77); (9660 33906 #78-78); (131670 33903 #79-79); (49140 33898 #80-80); (73920 33833 #81-81); (28560 33827 #82-82); (23940 33808 #83-83); (54600 33771 #84-84); (32130 33719 #85-85); (82110 33715 #86-86); (14490 33706 #87-87); (27930 33688 #88-88); (76230 33655 #89-89); (6510 33641 #90-90); (31920 33566 #91-91); (80850 33564 #92-92); (83160 33557 #93-93); (6090 33555 #94-94); (65520 33532 #95-95); (35700 33523 #96-96); (57330 33518 #97-97); (19320 33511 #98-98); (12180 33503 #99-99); (24150 33491 #100-100);

primorials 100000:

(2 10250 #158826-158865); (6 20472 #20178-20185); (30 27434 #2003-2003); (210 32719 #161-161); (2310 36322 #6-6); (30030 38434 #1-1); (510510 25233 #5165-5165);

among the first 1000000 (10^6) odd primes 3 through 15485867 (there are no tied ranks):

(510510 340191 #1-1); (570570 335991 #2-2); (30030 331644 #3-3); (60060 330432 #4-4); (120120 329009 #5-5); (690690 328971 #6-6); (90090 328938 #7-7); (150150 327747 #8-8); (180180 327518 #9-9); (1021020 326622 #10-10); (210210 326022 #11-11); (240240 325472 #12-12); (270270 324716 #13-13); (746130 324257 #14-14); (300300 323675 #15-15); (39270 323557 #16-16); (330330 322956 #17-17); (78540 322560 #18-18); (360360 322340 #19-19); (390390 321814 #20-20); (1141140 321719 #21-21); (117810 321414 #22-22); (43890 321349 #23-23); (870870 321329 #24-24); (420420 321016 #25-25); (157080 320339 #26-26); (450450 319941 #27-27); (87780 319841 #28-28); (480480 319488 #29-29); (196350 319001 #30-30); (131670 318880 #31-31); (930930 318868 #32-32); (235620 318821 #33-33); (46410 318065 #34-34); (540540 317717 #35-35); (274890 317417 #36-36); (175560 317340 #37-37); (53130 317215 #38-38); (903210 316926 #39-39); (600600 316875 #40-40); (219450 316635 #41-41); (92820 316210 #42-42); (106260 315973 #43-43); (314160 315965 #44-44); (353430 315806 #45-45); (630630 315502 #46-46); (263340 315340 #47-47); (660660 315117 #48-48); (139230 314979 #49-49); (392700 314930 #50-50); (51870 314922 #51-51); (881790 314887 #52-52); (159390 314726 #53-53); (1531530 314692 #54-54); (185640 314104 #55-55); (307230 313971 #56-56); (66990 313959 #57-57); (103740 313791 #58-58); (1111110 313519 #59-59); (720720 313463 #60-60); (431970 313352 #61-61); (212520 313175 #62-62); (71610 313060 #63-63); (232050 312817 #64-64); (351120 312815 #65-65); (155610 312760 #66-66); (1381380 312727 #67-67); (750750 312487 #68-68); (471240 312399 #69-69); (780780 312344 #70-70); (133980 312153 #71-71); (395010 312101 #72-72); (1009470 312069 #73-73); (62790 311718 #74-74); (810810 311601 #75-75); (265650 311572 #76-76); (143220 311541 #77-77); (278460 311218 #78-78); (549780 311013 #79-79); (207480 310874 #80-80); (85470 310859 #81-81); (840840 310762 #82-82); (438900 310691 #83-83); (318780 310577 #84-84); (324870 310469 #85-85); (200970 310404 #86-86); (482790 310057 #87-87); (589050 309915 #88-88); (94710 309757 #89-89); (125580 309724 #90-90); (259350 309485 #91-91); (371280 309413 #92-92); (1231230 309364 #93-93); (214830 309355 #94-94); (371910 309351 #95-95); (900900 309325 #96-96); (99330 309314 #97-97); (628320 309159 #98-98); (170940 308915 #99-99); (526680 308795 #100-100);

primorials 1000000:

(2 86027 #1894840-1894883); (6 170910 #250608-250620); (30 228548 #26112-26114); (210 274349 #2118-2118); (2310 305046 #144-144); (30030 331644 #3-3); (510510 340191 #1-1); (9699690 141233 #642368-642376);

among the first 10^6 primes after 10^10, namely from 10^10+19 through 10^10+23010139 (there are no tied ranks):

(510510 232043 #1-1); (570570 230166 #2-2); (1021020 226921 #3-3); (690690 225737 #4-4); (1141140 224221 #5-5); (746130 222868 #6-6); (60060 221915 #7-7); (870870 221831 #8-8); (30030 221797 #9-9); (150150 221644 #10-10); (1531530 221466 #11-11); (90090 221355 #12-12); (210210 221315 #13-13); (120120 221255 #14-14); (930930 220820 #15-15); (180180 220629 #16-16); (270270 220193 #17-17); (300300 219734 #18-18); (240240 219460 #19-19); (1381380 219454 #20-20); (330330 219211 #21-21); (360360 218845 #22-22); (903210 218765 #23-23); (390390 218595 #24-24); (420420 218552 #25-25); (881790 218101 #26-26); (480480 218059 #27-27); (1111110 217837 #28-28); (450450 217779 #29-29); (1711710 217739 #30-30); (39270 217635 #31-31); (540540 217338 #32-32); (2042040 217082 #33-33); (600600 216622 #34-34); (630630 216617 #35-35); (78540 216501 #36-36); (117810 216404 #37-37); (1009470 216351 #38-38); (1231230 216241 #39-39); (720720 216045 #40-40); (196350 215994 #41-41); (157080 215829 #42-42); (43890 215797 #43-43); (660660 215533 #44-44); (235620 215460 #45-45); (1492260 215392 #46-46); (1291290 215335 #47-47); (750750 215144 #48-48); (780780 214788 #49-49); (274890 214773 #50-50); (810810 214767 #51-51); (131670 214740 #52-52); (87780 214737 #53-53); (314160 214733 #54-54); (840840 214580 #55-55); (353430 214368 #56-56); (1138830 214271 #57-57); (900900 214269 #58-58); (175560 213720 #59-59); (219450 213694 #60-60); (1741740 213676 #61-61); (46410 213530 #62-62); (392700 213441 #63-63); (307230 213434 #64-64); (1217370 213430 #65-65); (1067430 213417 #66-66); (431970 213342 #67-67); (263340 213308 #68-68); (960960 213186 #69-69); (92820 213075 #70-70); (471240 213069 #71-71); (1411410 213067 #72-72); (351120 212893 #73-73); (53130 212760 #74-74); (589050 212729 #75-75); (990990 212645 #76-76); (2072070 212598 #77-77); (159390 212486 #78-78); (139230 212460 #79-79); (106260 212415 #80-80); (1051050 212366 #81-81); (395010 212241 #82-82); (549780 212217 #83-83); (1272810 212202 #84-84); (2282280 212191 #85-85); (1081080 212140 #86-86); (185640 212057 #87-87); (1861860 211670 #88-88); (51870 211619 #89-89); (1591590 211566 #90-90); (628320 211537 #91-91); (265650 211535 #92-92); (212520 211497 #93-93); (232050 211469 #94-94); (324870 211438 #95-95); (1171170 211347 #96-96); (438900 211271 #97-97); (482790 211263 #98-98); (278460 211262 #99-99); (1201200 211197 #100-100);

primorials at 10^10:

(2 57382 #2903318-2903469); (6 114833 #392781-392814); (30 152755 #45239-45242); (210 183875 #3655-3655); (2310 204068 #307-307); (30030 221797 #9-9); (510510 232043 #1-1); (9699690 145066 #85780-85787);

among the first 10^6 primes after 10^100, namely 10^100+267 through 10^100+230441007:

(9699690 24034 #1-1); (11741730 23765 #2-2); (1531530 23622 #3-3); (1021020 23590 #4-4); (2282280 23564 #5-5); (3063060 23542 #6-6); (2552550 23519 #7-7); (510510 23497 #8-8); (2042040 23482 #9-9); (1141140 23475 #10-10); (570570 23462 #11-11); (1711710 23418 #12-12); (3423420 23406 #13-13); (690690 23388 #14-14); (3573570 23324 #15-15); (4594590 23270 #16-16); (4564560 23239 #17-18); (13123110 23239 #17-18); (4084080 23237 #19-19); (1381380 23115 #20-21); (5705700 23115 #20-21); (3993990 23109 #22-22); (6276270 23090 #23-23); (2852850 23083 #24-24); (14804790 23037 #25-25); (4144140 23006 #26-26); (870870 22993 #27-27); (6636630 22968 #28-28); (7147140 22960 #29-29); (6126120 22948 #30-30); (8678670 22946 #31-31); (5135130 22937 #32-32); (7417410 22929 #33-33); (2072070 22922 #34-34); (5615610 22916 #35-35); (19399380 22908 #36-36); (15825810 22900 #37-37); (6846840 22887 #38-38); (2984520 22881 #39-39); (746130 22880 #40-40); (7987980 22858 #41-41); (7657650 22852 #42-42); (3730650 22843 #43-43); (2238390 22838 #44-44); (6216210 22837 #45-45); (3453450 22835 #46-46); (1741740 22821 #47-47); (9189180 22820 #48-48); (4834830 22799 #49-49); (1111110 22790 #50-50); (930930 22756 #51-51); (2762760 22747 #52-52); (5105100 22735 #53-54); (8168160 22735 #53-54); (5222910 22732 #55-55); (3723720 22713 #56-56); (1411410 22709 #57-57); (5969040 22708 #58-58); (2792790 22703 #59-59); (10840830 22702 #60-60); (2612610 22696 #61-61); (1231230 22693 #62-62); (6906900 22674 #63-63); (3333330 22672 #64-64); (903210 22667 #65-65); (1492260 22640 #66-66); (1591590 22625 #67-67); (8288280 22624 #68-68); (2222220 22623 #69-69); (4444440 22619 #70-70); (16546530 22607 #71-71); (9129120 22587 #72-72); (4354350 22586 #73-74); (5585580 22586 #73-74); (3483480 22577 #75-75); (1861860 22575 #76-76); (10720710 22566 #77-77); (5225220 22565 #78-78); (2645370 22551 #79-79); (7597590 22542 #80-80); (8558550 22538 #81-81); (5525520 22537 #82-82); (12252240 22534 #83-83); (10210200 22526 #84-84); (60060 22512 #85-86); (11231220 22512 #85-86); (881790 22510 #87-87); (12762750 22500 #88-88); (1009470 22485 #89-89); (2132130 22482 #90-90); (13783770 22472 #91-91); (1291290 22468 #92-92); (1806420 22457 #93-94); (2709630 22457 #93-94); (2277660 22456 #95-95); (2582580 22448 #96-96); (2822820 22447 #97-97); (4654650 22446 #98-98); (2492490 22435 #99-99); (11981970 22425 #100-100);

primorials at 10^100:

(2 5767 #28706071-28717948); (6 11484 #3922267-3924636); (30 15466 #384556-384851); (210 18481 #32555-32582); (2310 20373 #3393-3398); (30030 22276 #135-135); (510510 23497 #8-8); (9699690 24034 #1-1); (223092870 815 #102930136-102945303);

future work: 10^1000.

Sunday, December 29, 2024

[ahlvcwcw] factoring while you wait

on a modern computer, Pari/GP can usually factor RSA-style numbers (the worst case for factoring) of 60 digits (199 bits) in 30 seconds or less, subjectively the limit for human interactive patience.  factoring algorithms are probabilistic (randomized), so there is no hard upper bound to "usually".

74 digits (246 bits) usually takes under 5 minutes (300 seconds).  with improvements in software and parallel processing (SMP) (Pari/GP's ECM and MPQS are single-threaded), one could imagine getting getting 74-digits down to under 30 seconds.

previously, standard deviation.

Wednesday, November 20, 2024

[vyakuwax] ordered dice

roll some dice, order them by some metric independent of what number the die shows, then read off the numbers in that order.

example dice ordering metrics: color (ordering by rainbow), size, number of sides.  the last one provides a mixed-radix random number.  previously, dice with two digits on each face.

rolling a whole bunch of dice all at once is more efficient (and fun) than rolling one die repeatedly.  (more efficient until the (log n) factor of sorting dominates.)  dice collisions induce more randomness.

ordered d2: coins by value, size, or year.

ordered 30 * d20 generates 128 bits, assuming they are uniform, which is not a good assumption: d20s are likely not manufactured to high precision as casino dice are.  ordered 26d20 generates 112 bits (Triple DES): give each d20 an identifier letter.

or, a funnel which forces them single file.  cubes might be best because they pack.  funnel by itself is probably not enough.

(then, feed the sequence of random numbers into a hash function, or seed a cryptographically secure pseudorandom number generator with them.  even if the dice are a little biased, the output will be pretty random.)

Wednesday, October 02, 2024

[egfgwujd] twin primes adjacent to highly composite numbers

below are some numbers N with many divisors and for which N-1 and N+1 are both prime, i.e., twin primes.

the suffix A indicates a highly composite number (sets a new record for number of divisors among all numbers, not necessarily those between twin primes); B similarly indicates it ties the record for number of divisors (largely composite number); C indicates a new second place in number of divisors; D ties second place number of divisors.

4/A 6/A 12/A 18/A 30/B 42/D 60/A 72/B 108/B 180/A 240/A 420/B 432/D 600/A 660/B 1320/D 2340/D 3360/A 5280/D 5880/D 6300/C 7560/A 9240/A 21840/D 35280/D 42840/B 55440/A 65520/A 92400/D 100800/C 110880/A 128520/B 180180/D 415800/B 453600/D 514080/D 526680/D 540540/D 1867320/D 1912680/D 1921920/D 1940400/C 2489760/D 6652800/D 6846840/D 7068600/D 28828800/B 31600800/B 34594560/D 85765680/D 100900800/C 121080960/D 232792560/A 287567280/D 397837440/D 634888800/D 845404560/D 1259818560/D 1470268800/B 1574773200/D 6299092800/D 10708457760/D 12681068400/B 23827003200/D 32125373280/B 32590958400/C 33816182400/A 34918884000/B 40156716600/B 73329656400/A 135019684800/D 216497080800/B 439977938400/D 449755225920/B 578256719040/D 2126560035600/D 2835413380800/B 2971597028400/D 6278415343200/B 18632716502400/A 18835246029600/C 19275223968000/B 59753194300800/B 62403537596400/D 69712060017600/B 92199821313600/B 130429015516800/A 279490747536000/C 313704270079200/B 448148957256000/D 838472242608000/D 1382997319704000/D 1402111916805600/B 1498809290378400/D

investigated 1169 numbers from 1 to 1516237305382800 in those categories (A, B, C, D) previously generated.  95 numbers (above) are surrounded by twin primes.

inspired by some numbers between twin primes being quite smooth.  if searching for large twin primes (not sure why one would want to do this), is it profitable to restrict to those bracketing a smooth number?  (seems yes.)  if so, how smooth?  perhaps Pierpont, or some other sequence of very smooth numbers.

Saturday, June 15, 2024

[dwrhiuki] timing factorization of random 200-bit numbers

200 bit: mean= 534 ms, std= 1062 ms, n= 10000
201 bit: mean= 564 ms, std= 1112 ms, n= 10000
202 bit: mean= 599 ms, std= 1186 ms, n= 10000

all are about 61 digits (future post ahlvcwcw).

Chebyshev's inequality (because the distribution of factoring times is most definitely not a normal distribution) says 99% are within 10 standard deviations of the mean.  (can we do better than Chebyshev knowing that all values must be positive?)

to get standard error of the mean, divide standard deviation by sqrt(n) = 100.

model name : Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz

GP/PARI CALCULATOR Version 2.15.4 (released)
amd64 running linux (x86-64/GMP-6.2.1 kernel) 64-bit version
compiled: Jul 12 2023, gcc version 12.3.0 (Debian 12.3.0-5)
threading engine: pthread

? for(bitsize=200, 202, gettime; sumt=0; s2t=0; for(i=1, 10000, s=random(2^bitsize); print("dataline ",bitsize," ",s," ",factor(s)); t=gettime; sumt+=t; s2t+=t*t; print("i ",i," t ",t," sumt ",sumt," s2t ",s2t)); print("done ",bitsize))

Saturday, May 25, 2024

[djtfvrnt] sigil numbers

IEEE 754 floating point can represent infinities and Not a Number without crashing (in contrast to integers, which cannot represent those):

float infinity = 1/0.0;
float NaN = 0/0.0;
float negative_infinity = -1/0.0;

the denominator of 0.0 not 0 is needed to avoid a compile-time warning (gcc 7.5.0). 1.0/0 and 0.0/0 also cause the warning.

the infinities may be useful for algorithms which require an initialization value larger or smaller than any value that will be seen in the input, for example, finding the maximum of an array.

I can't think of any numerical use case for NaN.  there are apparently many encodings (bit strings) that are NaN, so maybe useful for steganography.

Sunday, May 19, 2024

[bvqqdwkp] Pierpont twin primes

below are the 73 twin primes of the form (2^a * 3^b plus and minus 1) less than 2^10000 ~= 10^3010.

(2^2 * 3^0 +- 1), (2^1 * 3^1 +- 1), (2^2 * 3^1 +- 1), (2^1 * 3^2 +- 1), (2^3 * 3^2 +- 1), (2^2 * 3^3 +- 1), (2^6 * 3^1 +- 1), (2^4 * 3^3 +- 1), (2^7 * 3^2 +- 1), (2^5 * 3^4 +- 1), (2^6 * 3^7 +- 1), (2^3 * 3^10 +- 1), (2^18 * 3^1 +- 1), (2^12 * 3^5 +- 1), (2^2 * 3^15 +- 1), (2^18 * 3^5 +- 1), (2^21 * 3^4 +- 1), (2^24 * 3^5 +- 1), (2^27 * 3^4 +- 1), (2^30 * 3^7 +- 1), (2^33 * 3^8 +- 1), (2^43 * 3^2 +- 1), (2^32 * 3^9 +- 1), (2^36 * 3^7 +- 1), (2^11 * 3^24 +- 1), (2^31 * 3^12 +- 1), (2^43 * 3^8 +- 1), (2^32 * 3^15 +- 1), (2^50 * 3^9 +- 1), (2^63 * 3^2 +- 1), (2^66 * 3^25 +- 1), (2^79 * 3^20 +- 1), (2^99 * 3^10 +- 1), (2^57 * 3^64 +- 1), (2^82 * 3^63 +- 1), (2^148 * 3^27 +- 1), (2^63 * 3^88 +- 1), (2^56 * 3^99 +- 1), (2^211 * 3^2 +- 1), (2^275 * 3^16 +- 1), (2^287 * 3^10 +- 1), (2^90 * 3^169 +- 1), (2^148 * 3^135 +- 1), (2^298 * 3^51 +- 1), (2^160 * 3^141 +- 1), (2^363 * 3^52 +- 1), (2^134 * 3^231 +- 1), (2^49 * 3^320 +- 1), (2^529 * 3^44 +- 1), (2^264 * 3^419 +- 1), (2^960 * 3^143 +- 1), (2^541 * 3^476 +- 1), (2^988 * 3^207 +- 1), (2^1015 * 3^332 +- 1), (2^1440 * 3^97 +- 1), (2^1295 * 3^324 +- 1), (2^979 * 3^738 +- 1), (2^258 * 3^1493 +- 1), (2^637 * 3^1320 +- 1), (2^2320 * 3^333 +- 1), (2^1036 * 3^1167 +- 1), (2^2815 * 3^188 +- 1), (2^1063 * 3^1440 +- 1), (2^180 * 3^2251 +- 1), (2^888 * 3^2033 +- 1), (2^300 * 3^2819 +- 1), (2^2176 * 3^2175 +- 1), (2^4014 * 3^1879 +- 1), (2^280 * 3^4311 +- 1), (2^6228 * 3^571 +- 1), (2^6981 * 3^560 +- 1), (2^3505 * 3^2892 +- 1), (2^5899 * 3^2570 +- 1)

is this a statistically high yield of twin primes?

also previously.

Sunday, May 12, 2024

[mawvhdtz] permutation by primes

we permute the numbers 1..n using the randomness of the prime numbers.

there are many ways to do this.  we implement the "inside-out" variation of the Fisher-Yates shuffle.  the index "c" chains iterations of the loop, because it feels like that would make things more "random". we transform primes by p=(p-1)/2 to prevent them from being all odd.  because the i-th prime is approximately i*log(i), c will cycle around (because of mod) about log(i)/2 times each iteration.

u(n) = my(a=vector(n)); my(c=0); for(i=1, n, my(p=prime(i)); if(2==p, p=0, p=(p-1)/2); c+=p; c%=i; j=c+1; a[i]=a[j]; a[j]=i); a;

note that vectors in Pari/GP are 1-indexed and initialized to zero.  we are permuting numbers 1 through n, so if we were to see a zero in the output, an uninitialized value has gotten through, i.e., there is a bug.  the nthprime function is also 1-indexed, i.e., prime(1)=2 .

here is the permutation of numbers 1 through 30:

u(30)

[3, 10, 29, 6, 18, 15, 28, 21, 5, 27, 17, 12, 26, 20, 25, 16, 24, 7, 19, 11, 23, 1, 9, 8, 13, 14, 2, 4, 30, 22]

step by step: the newest number each iteration is underlined.

iprime(i) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
12 1
23 1 2
35 3 2 1
47 3 2 1 4
511 3 2 1 5 4
613 3 2 1 6 4 5
717 3 2 1 6 7 5 4
819 3 2 1 6 7 8 4 5
923 3 2 1 6 7 8 4 9 5
1029 3 10 1 6 7 8 4 9 5 2
1131 3 10 1 6 7 11 4 9 5 2 8
1237 3 10 1 6 7 11 4 9 5 2 8 12
1341 3 10 1 6 7 13 4 9 5 2 8 12 11
1443 3 10 1 6 7 13 4 9 5 2 8 12 14 11
1547 3 10 1 6 7 15 4 9 5 2 8 12 14 11 13
1653 3 10 1 6 7 15 4 9 5 2 8 12 14 11 13 16
1759 3 10 1 6 7 15 4 9 5 2 17 12 14 11 13 16 8
1861 3 10 1 6 18 15 4 9 5 2 17 12 14 11 13 16 8 7
1967 3 10 1 6 18 15 4 9 5 2 17 12 14 11 13 16 8 7 19
2071 3 10 1 6 18 15 4 9 5 2 17 12 14 20 13 16 8 7 19 11
2173 3 10 1 6 18 15 4 21 5 2 17 12 14 20 13 16 8 7 19 11 9
2279 3 10 22 6 18 15 4 21 5 2 17 12 14 20 13 16 8 7 19 11 9 1
2383 3 10 22 6 18 15 4 21 5 2 17 12 14 20 13 16 8 7 19 11 23 1 9
2489 3 10 22 6 18 15 4 21 5 2 17 12 14 20 13 16 24 7 19 11 23 1 9 8
2597 3 10 22 6 18 15 4 21 5 2 17 12 14 20 25 16 24 7 19 11 23 1 9 8 13
26101 3 10 22 6 18 15 4 21 5 2 17 12 26 20 25 16 24 7 19 11 23 1 9 8 13 14
27103 3 10 22 6 18 15 4 21 5 27 17 12 26 20 25 16 24 7 19 11 23 1 9 8 13 14 2
28107 3 10 22 6 18 15 28 21 5 27 17 12 26 20 25 16 24 7 19 11 23 1 9 8 13 14 2 4
29109 3 10 29 6 18 15 28 21 5 27 17 12 26 20 25 16 24 7 19 11 23 1 9 8 13 14 2 4 22
30113 3 10 29 6 18 15 28 21 5 27 17 12 26 20 25 16 24 7 19 11 23 1 9 8 13 14 2 4 30 22
iprime(i) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

note that the inside-out algorithm can be run incrementally, so terminating the algorithm at any step above would result in a permutation of a fewer number of elements.

permuting the digits 0 through 9 yields 2905673841.  permuting the letters a through z yields cjvfroduebqlztypxgskwaihmn.

motivation is a puzzle that requires solving the Riemann Hypothesis.  consider using the above permutation (and additional permutations generated similarly) in a substitution-permutation cipher.

how random are these permutations?  although we've corrected for the bias against even numbers, primes not being multiples of each other likely introduces other biases.  what other structures that look approximately uniformly random can be constructed from the primes?  (previously, bitmaps of gradually decreasing density.)  if we first produce a good cipher, then anything is possible.

Tuesday, March 26, 2024

[untgildg] second collision resistance

collisions in hash functions are unavoidable.  if you find one collision (messages A and B have the same hash), how easy is it to manufacture another collision (messages C and D have the same hash), or even an infinite collection of collisions?

can cryptographic hash functions be designed to prevent collisions from easily yielding more collisions?

Saturday, March 16, 2024

[vsibrkyz] astronomically rare dice rolls

obtaining a whole bunch of regular dice (d6) and rolling them simultaneously seems not very difficult.  (Amazon currently sells sets of as many as 100 for under $20.)  consider rolling until they all come up 6.  doing such an exercise allows viscerally trying to experience very low probabilities.  humans generally have difficulty understanding low probabilities.  for a given low probability, you can map it to a number of dice.

below are the reciprocals of probabilities of N dice up to 100, interspersed with some orders of magnitude in base 10 and base 2.  for example, all sixes on 2 dice has a probability of 1 in 36.  100 dice is approximately the probability of breaking 258-bit security by random chance.

is it practically difficult to roll many dice simultaneously?  maybe they land leaned against each other, interfering with landing flat.  beyond a certain number, it becomes difficult to verify between rolls that you haven't lost any.

coins are also easy to obtain, but when flipping many coins simultaneously, it's likely some will roll quite far on their edges before landing on a side.  collisions among dice also might occasionally propel some of them a very long distance.

1 6 (6.0e0)
2 36 (3.6e1)
3 216 (2.2e2)
4 1,296 (1.3e3)
5 7,776 (7.8e3)
6 46,656 (4.7e4)
7 279,936 (2.8e5)
million
8 1,679,616 (1.7e6)
9 10,077,696 (1.0e7)
10 60,466,176 (6.0e7)
11 362,797,056 (3.6e8)
billion
12 2,176,782,336 (2.2e9)
13 13,060,694,016 (1.3e10)
14 78,364,164,096 (7.8e10)
15 470,184,984,576 (4.7e11)
trillion
16 2,821,109,907,456 (2.8e12)
17 16,926,659,444,736 (1.7e13)
18 101,559,956,668,416 (1.0e14)
19 609,359,740,010,496 (6.1e14)
quadrillion
20 3,656,158,440,062,976 (3.7e15)
21 21,936,950,640,377,856 (2.2e16)
22 131,621,703,842,267,136 (1.3e17)
23 789,730,223,053,602,816 (7.9e17)
24 4,738,381,338,321,616,896 (4.7e18)
64 bits
25 28,430,288,029,929,701,376 (2.8e19)
26 170,581,728,179,578,208,256 (1.7e20)
27 1,023,490,369,077,469,249,536 (1.0e21)
28 6,140,942,214,464,815,497,216 (6.1e21)
29 36,845,653,286,788,892,983,296 (3.7e22)
30 221,073,919,720,733,357,899,776 (2.2e23)
31 1,326,443,518,324,400,147,398,656 (1.3e24)
32 7,958,661,109,946,400,884,391,936 (8.0e24)
33 47,751,966,659,678,405,306,351,616 (4.8e25)
34 286,511,799,958,070,431,838,109,696 (2.9e26)
35 1,719,070,799,748,422,591,028,658,176 (1.7e27)
36 10,314,424,798,490,535,546,171,949,056 (1.0e28)
37 61,886,548,790,943,213,277,031,694,336 (6.2e28)
38 371,319,292,745,659,279,662,190,166,016 (3.7e29)
39 2,227,915,756,473,955,677,973,140,996,096 (2.2e30)
40 13,367,494,538,843,734,067,838,845,976,576 (1.3e31)
41 80,204,967,233,062,404,407,033,075,859,456 (8.0e31)
42 481,229,803,398,374,426,442,198,455,156,736 (4.8e32)
43 2,887,378,820,390,246,558,653,190,730,940,416 (2.9e33)
44 17,324,272,922,341,479,351,919,144,385,642,496 (1.7e34)
45 103,945,637,534,048,876,111,514,866,313,854,976 (1.0e35)
46 623,673,825,204,293,256,669,089,197,883,129,856 (6.2e35)
47 3,742,042,951,225,759,540,014,535,187,298,779,136 (3.7e36)
48 22,452,257,707,354,557,240,087,211,123,792,674,816 (2.2e37)
49 134,713,546,244,127,343,440,523,266,742,756,048,896 (1.3e38)
128 bits
50 808,281,277,464,764,060,643,139,600,456,536,293,376 (8.1e38)
51 4,849,687,664,788,584,363,858,837,602,739,217,760,256 (4.8e39)
52 29,098,125,988,731,506,183,153,025,616,435,306,561,536 (2.9e40)
53 174,588,755,932,389,037,098,918,153,698,611,839,369,216 (1.7e41)
54 1,047,532,535,594,334,222,593,508,922,191,671,036,215,296 (1.0e42)
55 6,285,195,213,566,005,335,561,053,533,150,026,217,291,776 (6.3e42)
56 37,711,171,281,396,032,013,366,321,198,900,157,303,750,656 (3.8e43)
57 226,267,027,688,376,192,080,197,927,193,400,943,822,503,936 (2.3e44)
58 1,357,602,166,130,257,152,481,187,563,160,405,662,935,023,616 (1.4e45)
59 8,145,612,996,781,542,914,887,125,378,962,433,977,610,141,696 (8.1e45)
60 48,873,677,980,689,257,489,322,752,273,774,603,865,660,850,176 (4.9e46)
61 293,242,067,884,135,544,935,936,513,642,647,623,193,965,101,056 (2.9e47)
62 1,759,452,407,304,813,269,615,619,081,855,885,739,163,790,606,336 (1.8e48)
63 10,556,714,443,828,879,617,693,714,491,135,314,434,982,743,638,016 (1.1e49)
64 63,340,286,662,973,277,706,162,286,946,811,886,609,896,461,828,096 (6.3e49)
65 380,041,719,977,839,666,236,973,721,680,871,319,659,378,770,968,576 (3.8e50)
66 2,280,250,319,867,037,997,421,842,330,085,227,917,956,272,625,811,456 (2.3e51)
67 13,681,501,919,202,227,984,531,053,980,511,367,507,737,635,754,868,736 (1.4e52)
68 82,089,011,515,213,367,907,186,323,883,068,205,046,425,814,529,212,416 (8.2e52)
69 492,534,069,091,280,207,443,117,943,298,409,230,278,554,887,175,274,496 (4.9e53)
70 2,955,204,414,547,681,244,658,707,659,790,455,381,671,329,323,051,646,976 (3.0e54)
71 17,731,226,487,286,087,467,952,245,958,742,732,290,027,975,938,309,881,856 (1.8e55)
72 106,387,358,923,716,524,807,713,475,752,456,393,740,167,855,629,859,291,136 (1.1e56)
73 638,324,153,542,299,148,846,280,854,514,738,362,441,007,133,779,155,746,816 (6.4e56)
74 3,829,944,921,253,794,893,077,685,127,088,430,174,646,042,802,674,934,480,896 (3.8e57)
192 bits
75 22,979,669,527,522,769,358,466,110,762,530,581,047,876,256,816,049,606,885,376 (2.3e58)
76 137,878,017,165,136,616,150,796,664,575,183,486,287,257,540,896,297,641,312,256 (1.4e59)
77 827,268,102,990,819,696,904,779,987,451,100,917,723,545,245,377,785,847,873,536 (8.3e59)
78 4,963,608,617,944,918,181,428,679,924,706,605,506,341,271,472,266,715,087,241,216 (5.0e60)
79 29,781,651,707,669,509,088,572,079,548,239,633,038,047,628,833,600,290,523,447,296 (3.0e61)
80 178,689,910,246,017,054,531,432,477,289,437,798,228,285,773,001,601,743,140,683,776 (1.8e62)
81 1,072,139,461,476,102,327,188,594,863,736,626,789,369,714,638,009,610,458,844,102,656 (1.1e63)
82 6,432,836,768,856,613,963,131,569,182,419,760,736,218,287,828,057,662,753,064,615,936 (6.4e63)
83 38,597,020,613,139,683,778,789,415,094,518,564,417,309,726,968,345,976,518,387,695,616 (3.9e64)
84 231,582,123,678,838,102,672,736,490,567,111,386,503,858,361,810,075,859,110,326,173,696 (2.3e65)
85 1,389,492,742,073,028,616,036,418,943,402,668,319,023,150,170,860,455,154,661,957,042,176 (1.4e66)
86 8,336,956,452,438,171,696,218,513,660,416,009,914,138,901,025,162,730,927,971,742,253,056 (8.3e66)
87 50,021,738,714,629,030,177,311,081,962,496,059,484,833,406,150,976,385,567,830,453,518,336 (5.0e67)
88 300,130,432,287,774,181,063,866,491,774,976,356,909,000,436,905,858,313,406,982,721,110,016 (3.0e68)
89 1,800,782,593,726,645,086,383,198,950,649,858,141,454,002,621,435,149,880,441,896,326,660,096 (1.8e69)
90 10,804,695,562,359,870,518,299,193,703,899,148,848,724,015,728,610,899,282,651,377,959,960,576 (1.1e70)
91 64,828,173,374,159,223,109,795,162,223,394,893,092,344,094,371,665,395,695,908,267,759,763,456 (6.5e70)
92 388,969,040,244,955,338,658,770,973,340,369,358,554,064,566,229,992,374,175,449,606,558,580,736 (3.9e71)
93 2,333,814,241,469,732,031,952,625,840,042,216,151,324,387,397,379,954,245,052,697,639,351,484,416 (2.3e72)
94 14,002,885,448,818,392,191,715,755,040,253,296,907,946,324,384,279,725,470,316,185,836,108,906,496 (1.4e73)
95 84,017,312,692,910,353,150,294,530,241,519,781,447,677,946,305,678,352,821,897,115,016,653,438,976 (8.4e73)
96 504,103,876,157,462,118,901,767,181,449,118,688,686,067,677,834,070,116,931,382,690,099,920,633,856 (5.0e74)
97 3,024,623,256,944,772,713,410,603,088,694,712,132,116,406,067,004,420,701,588,296,140,599,523,803,136 (3.0e75)
98 18,147,739,541,668,636,280,463,618,532,168,272,792,698,436,402,026,524,209,529,776,843,597,142,818,816 (1.8e76)
99 108,886,437,250,011,817,682,781,711,193,009,636,756,190,618,412,159,145,257,178,661,061,582,856,912,896 (1.1e77)
256 bits
100 653,318,623,500,070,906,096,690,267,158,057,820,537,143,710,472,954,871,543,071,966,369,497,141,477,376 (6.5e77)

Saturday, March 09, 2024

[aoypoxfn] factorization challenges easy to type

each composite number below consists of repetitions of the digit string 1234567890 except the final few digits.  the smaller factors are large enough that quadratic sieve is probably more efficient than elliptic curve method (ECM).

previously similar for base 2, assuming you have an expression parser.

40 digits: 1234567890123456789012345678901234567759 = 5284744045008013 * 233609779321220631386443

50 digits: 12345678901234567890123456789012345678901234567633 = 92279162895906968524229 * 133786203881810018387538077

60 digits: 123456789012345678901234567890123456789012345678901234567831 = 87988560978576315942371700757 * 1403100444413510291678340665083

70 digits: 1234567890123456789012345678901234567890123456789012345678901234566713 = 61208527479308458227554760703 * 20169867516267279020392646921656369545671

80 digits: 12345678901234567890123456789012345678901234567890123456789012345678901234567751 = 575099128882847693294536030177708942207 * 21467045038333698701383939676398791777593

90 digits: 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567597 = 40166540925345636983244707230202848993 * 3073622626399545288925403158158369054873454157207629

Tuesday, January 09, 2024

[hvrryxye] trial division before ispseudoprime in Pari/GP

below is Pari/GP code which prints out a table for the optimal amount of trial division to do before calling ispseudoprime on large primes, automating some of previously discussed.  the table is specific to the computer on which the code is run, specific to the relative speeds of trial division and modular exponentiation.

ispseudoprime internally does trial division only up to 101, so parithreshold is 102.  to confirm this, we use Mersenne prime 2^19937-1.  the first call to ispseudoprome returns immediately.

? #
timer = 1 (on)

? y=2^19937-1;
? ispseudoprime(101*y)
0

? ispseudoprime(103*y)
cpu time = 1,313 ms, real time = 1,316 ms.
0

we construct a composite which will pass ispseudoprime's internal trial division by multiplying large random primes (primes approximately 2^1000 = growthrate).  (unfixed bug: asking for a random prime less than 2^1000 might, with miniscule probability, generate a prime less than 102.)

we do some fine adjustment of growthrate so that the composites are approximately 1000n+buffer bits (buffer = 5) to make the table pretty.  calling randomprime with argument 2^(x+1) will, on average, provide a prime of size 2^x.

the variable "dummy" is to make sure the calls to mod and ispseudoprime do not get optimized away.  this might be more cautious than necessary.

after its small amount of trial division, ispseudoprime does the BPSW primality test, which starts with a Miller-Rabin test with base 2.  when given a composite, with high probability this first test fails, and we assume that this is always the case.  if we are unlucky and hit a composite which has to do the rest of BPSW, then that line's entry in the second column will be too large by a factor of 3 or 4.

the output is probabilistic; do multiple runs to assure yourself of results.

the columns are (1) width in bits of the composite being tested, (2) milliseconds for a failing ispseudoprime test, (3) milliseconds for one trial division, (4) how far (with forprime) you should do trial division for numbers of that size.  for example, if you are testing primality of 10000-bit numbers on the same computer as tested below, you should define a function like this:

mypseudoprime(n) = forprime(p=100, 301720, if(n%p==0,return(0))); ispseudoprime(n)

future work: fit output to a curve; interpolate and extrapolate.

the code:

? print("(bits) (miller-rabin ms) (trial division ms) (forprime limit)"); buffer=5; growthrate=1000; trialdivisioniterations=500000; parithreshold=102; endprime= prime(primepi(parithreshold)+trialdivisioniterations); millerrabiniterations=10; k=randomprime(2^(growthrate+buffer+1)); for(i=2,+oo,desired=growthrate*i+buffer; thisgrow=desired-round(log(k)/log(2)); k*=randomprime(2^(thisgrow+1)); dummy=0; gettime; for(j=1,millerrabiniterations,dummy+=ispseudoprime(k)); timemillerrabin=gettime/millerrabiniterations; forprime(p=parithreshold,endprime,if(k%p==0,dummy+=1)); timetrialdivision=gettime/trialdivisioniterations; printf("%.1f %.1f (%.2e) %.1f\n", log(k)/log(2), timemillerrabin, timetrialdivision, timemillerrabin/timetrialdivision))

example output:

(bits) (miller-rabin ms) (trial division ms) (forprime limit)
2004.2 4.1 (3.12 e-4) 13141.0
3005.2 13.2 (3.84 e-4) 34375.0
4004.5 25.1 (4.50 e-4) 55777.8
5005.4 44.7 (5.20 e-4) 85961.5
6005.5 73.2 (5.92 e-4) 123648.6
7005.7 110.6 (6.60 e-4) 167575.8
8005.7 149.9 (7.26 e-4) 206473.8
8995.9 199.4 (8.00 e-4) 249250.0
10005.2 263.1 (8.72 e-4) 301720.2
11003.1 335.0 (9.40 e-4) 356383.0
12000.7 420.4 (1.01 e-3) 417892.6
13005.2 519.3 (1.07 e-3) 484421.6
14003.4 612.3 (1.14 e-3) 535227.3
15005.9 724.0 (1.22 e-3) 595394.7
16005.6 861.0 (1.29 e-3) 668478.3
17004.4 1011.3 (1.35 e-3) 746898.1
18005.0 1173.8 (1.43 e-3) 818549.5
19003.5 1351.4 (1.49 e-3) 904551.5
20006.1 1556.2 (1.58 e-3) 986185.0
21005.0 1732.7 (1.63 e-3) 1064312.0
22005.3 1909.5 (1.70 e-3) 1123235.3
23005.8 2152.0 (1.77 e-3) 1213077.8
24002.6 2414.8 (1.84 e-3) 1310966.3
25004.9 2666.9 (1.91 e-3) 1399213.0
26005.4 2958.1 (1.98 e-3) 1495500.5
27006.0 3245.6 (2.04 e-3) 1589422.1
28006.0 3560.3 (2.12 e-3) 1677804.0
29005.8 3913.1 (2.19 e-3) 1790073.2
30004.0 4247.4 (2.25 e-3) 1886056.8
31004.0 4618.4 (2.32 e-3) 1987263.3
32004.6 5003.2 (2.39 e-3) 2091638.8
33000.0 5349.2 (2.46 e-3) 2170941.6
34003.2 5781.2 (2.55 e-3) 2265360.5
35004.9 6213.4 (2.60 e-3) 2386098.3
36003.3 6713.6 (2.67 e-3) 2512574.9
37002.1 7305.4 (2.75 e-3) 2656509.1
38005.1 8087.1 (2.81 e-3) 2875924.6
39003.6 8526.0 (2.88 e-3) 2960416.7
39997.8 8835.2 (3.00 e-3) 2943104.6
41005.1 9398.1 (3.02 e-3) 3114015.9
42005.8 9832.8 (3.09 e-3) 3184196.9
43003.1 10339.4 (3.16 e-3) 3267825.5
44005.6 11007.1 (3.23 e-3) 3409882.3
45003.5 11644.2 (3.29 e-3) 3537120.3
46004.8 12352.8 (3.37 e-3) 3667696.0
47005.6 13060.3 (3.44 e-3) 3798807.4
48005.5 13850.3 (3.50 e-3) 3952711.2
49003.3 14825.6 (3.58 e-3) 4145861.3
50005.9 15435.8 (3.65 e-3) 4231304.8
51005.6 16128.1 (3.71 e-3) 4347196.8
52004.8 16998.9 (3.78 e-3) 4497063.5
53005.0 17837.7 (3.85 e-3) 4637987.5
54004.5 18631.3 (3.92 e-3) 4752882.7
55004.8 19613.3 (4.00 e-3) 4903325.0
56004.1 20424.9 (4.06 e-3) 5025812.0
57005.9 21383.3 (4.13 e-3) 5177554.5
58004.2 22470.3 (4.19 e-3) 5357725.3
59003.3 23287.9 (4.27 e-3) 5458954.5
60006.3 24412.8 (4.34 e-3) 5627662.5
61005.9 25196.2 (4.40 e-3) 5726409.1
62003.8 25857.4 (4.48 e-3) 5766592.3
63004.8 26956.6 (4.54 e-3) 5932350.4
64005.4 27839.4 (4.61 e-3) 6038915.4
65005.5 29078.7 (4.70 e-3) 6192227.4
66005.4 29854.0 (4.76 e-3) 6266582.7
67003.5 30966.1 (4.82 e-3) 6424502.1
68006.4 32222.3 (4.90 e-3) 6570615.8
69005.0 33446.1 (4.97 e-3) 6732306.8
70005.6 34635.7 (5.05 e-3) 6861271.8
71005.0 35762.7 (5.10 e-3) 7012294.1
72005.1 36893.8 (5.17 e-3) 7130614.6
73003.9 38375.0 (5.23 e-3) 7334671.3
74005.5 39864.7 (5.32 e-3) 7496182.8

^C
    ***   at top-level: ...errabiniterations,dummy+=ispseudoprime(k));ti
    ***                                             ^--------------------
    *** ispseudoprime: user interrupt after 2h, 29min, 5,695 ms
    ***   Break loop: <Return> to continue; 'break' to go back to GP prompt 
break> break  

Sunday, December 17, 2023

[hxlnwdak] human factorization

given a group of people armed with paper and pencils, what size number can they (probably) prime factor in a given amount of time?  what algorithms should they use?

[eoaqgkaq] proportion of RSA numbers

define an RSA number to be a number that factors into exactly two prime numbers, the larger being less than twice the smaller.

isrsa(n)=my(f=factorint(n)); my(s=matsize(f)); if(2!=s[1], return(0), if(f[1,2]!=1 || f[2,2]!=1, return(0), if(f[1,1]*2<f[2,1], return(0)))); 1;

here are the first few RSA numbers:

? for(i=0, 256, if(isrsa(i), print(i," ",factorint(i))))
6 [2, 1; 3, 1]
15 [3, 1; 5, 1]
35 [5, 1; 7, 1]
77 [7, 1; 11, 1]
91 [7, 1; 13, 1]
143 [11, 1; 13, 1]
187 [11, 1; 17, 1]
209 [11, 1; 19, 1]
221 [13, 1; 17, 1]
247 [13, 1; 19, 1]

for a given range of numbers, what proportion are RSA numbers?  this seems like this could be estimated analytically (perhaps with the Dickman function, for related work, see Tao), but we do Monte Carlo in Pari/GP, using parfor for parallel computation.

in order to speed up computation by a factor of 2, we assume all even numbers are not RSA numbers.  however, when testing small numbers, 6 needs to be special cased.  even though printing is done in the sequential block of parfor, the results do not come out in order.

the first few results below can be verified with the above list of RSA numbers.  among the 2-bit numbers with most significant bit set, namely 2 and 3, none are RSA numbers.  among the 5-bit numbers with MSB set, 16-31, none are RSA numbers.  among the 32 6-bit numbers with MSB set, 32-63, 1 (35) is an RSA number: 1e6/32 = 31250.  among the 8 4-bit numbers with MSB set, 8-15, 1 (15) is an RSA number: 1e6/8 = 125000.  among the 128 8-bit numbers with MSB set, 128-255, 5 (143, 187, 209, 221, 247) are RSA numbers: 1e6/128*5 = 39062.5.  among the 1-bit number with MSB set, 1, none are RSA numbers.  among the 64 7-bit numbers with MSB set, 64-127, 2 (35, 77) are RSA numbers: 1e6/64*2 = 31250.  among the 4 3-bit numbers with MSB set, 4-7, 1 (6) is an RSA number: 1e6/4 = 250000.

first batch (actually done second), up to 55 bits:

? gettime; export(isrsa); my(ncount=1000000); parfor(bitsize=1, 55, my(s=0); for(i=1, ncount, my(n=random(2^(bitsize-1))+2^(bitsize-1)); if((n!=6)&&(n%2==0), next); if(isrsa(n), s+=1)); s, x, print("dataline "bitsize" "x" "ncount" "gettime))
dataline 2 0 1000000 18573
dataline 5 0 1000000 1904
dataline 6 31267 1000000 721
dataline 4 124853 1000000 161
dataline 8 39461 1000000 429
dataline 1 0 1000000 657
dataline 7 31457 1000000 619
dataline 3 249848 1000000 3514
dataline 10 19328 1000000 15600
dataline 9 19521 1000000 358
dataline 13 15826 1000000 771
dataline 11 18540 1000000 435
dataline 12 17816 1000000 656
dataline 15 11376 1000000 1572
dataline 14 12527 1000000 70
dataline 16 10891 1000000 2589
dataline 17 9477 1000000 15102
dataline 20 7257 1000000 2855
dataline 18 8500 1000000 1187
dataline 19 7705 1000000 1742
dataline 21 6747 1000000 2350
dataline 22 5958 1000000 1498
dataline 23 5487 1000000 2263
dataline 24 5089 1000000 2358
dataline 25 4625 1000000 15038
dataline 26 4297 1000000 5640
dataline 27 3963 1000000 2492
dataline 28 3790 1000000 3167
dataline 29 3613 1000000 3506
dataline 30 3317 1000000 6984
dataline 31 3043 1000000 6711
dataline 32 2769 1000000 8230
dataline 33 2616 1000000 23971
dataline 34 2583 1000000 18296
dataline 35 2467 1000000 10707
dataline 36 2216 1000000 8008
dataline 37 2173 1000000 17621
dataline 38 2078 1000000 16277
dataline 39 1908 1000000 25297
dataline 40 1863 1000000 22039
dataline 41 1790 1000000 39006
dataline 42 1694 1000000 42367
dataline 43 1593 1000000 38054
dataline 44 1524 1000000 35728
dataline 45 1499 1000000 49830
dataline 46 1410 1000000 48127
dataline 47 1351 1000000 62108
dataline 48 1282 1000000 65871
dataline 49 1188 1000000 76204
dataline 50 1231 1000000 71772
dataline 51 1122 1000000 66634
dataline 52 1074 1000000 44500
dataline 53 1029 1000000 56539
dataline 54 1007 1000000 37354
dataline 55 954 1000000 22767
cpu time = 17min, 8,807 ms, real time = 5min, 50,115 ms.

for example, the last line above should be read: we randomly sampled 1000000 55-bit numbers with MSB set.  954 were RSA numbers = 0.000954 = 0.0954% .  22767 milliseconds of CPU time had been expended since the previous line was printed (though gettime is mostly meaningless in this parallel computation).

second batch:

? gettime; export(isrsa); my(ncount=1000000); parfor(bitsize=56, +oo, my(s=0); for(i=1, ncount, my(n=random(2^(bitsize-1))+2^(bitsize-1)); if(n%2==0, next); if(isrsa(n), s+=1)); s, x, print("dataline "bitsize" "x" "ncount" "gettime))
dataline 56 928 1000000 967649
dataline 57 913 1000000 139615
dataline 58 887 1000000 154693
dataline 60 841 1000000 74465
dataline 59 837 1000000 107296
dataline 61 850 1000000 11812
dataline 62 763 1000000 70641
dataline 63 726 1000000 78389
dataline 64 722 1000000 1068514
dataline 65 690 1000000 446623
dataline 66 638 1000000 266677
dataline 67 694 1000000 211371
dataline 68 641 1000000 253129
dataline 69 619 1000000 164697
dataline 70 557 1000000 221582
dataline 71 577 1000000 253060
dataline 72 583 1000000 1208599
dataline 73 511 1000000 584578
dataline 74 502 1000000 448724
dataline 75 498 1000000 380748
dataline 76 499 1000000 391445
dataline 77 470 1000000 382709
dataline 78 471 1000000 403028
dataline 79 483 1000000 458870
dataline 80 495 1000000 1413907
dataline 81 431 1000000 791296
dataline 82 436 1000000 694658
dataline 83 411 1000000 649589
dataline 84 412 1000000 550870
dataline 85 399 1000000 621967
dataline 86 407 1000000 650454
dataline 87 399 1000000 717952
dataline 88 392 1000000 1735925
dataline 89 342 1000000 1041960
dataline 90 352 1000000 996877
dataline 91 346 1000000 1002713
dataline 92 341 1000000 860047
dataline 93 304 1000000 955470
dataline 94 333 1000000 1012760
dataline 95 329 1000000 1054538
dataline 96 299 1000000 2080883
dataline 97 299 1000000 1574054
dataline 98 283 1000000 1497025
dataline 99 300 1000000 1541806
dataline 100 313 1000000 1266607
dataline 101 287 1000000 1577068
dataline 102 289 1000000 1557525
dataline 103 265 1000000 1650203
dataline 104 299 1000000 2721996
dataline 105 268 1000000 2171018
dataline 106 261 1000000 2138428
dataline 107 248 1000000 2464619
dataline 108 273 1000000 2069371
dataline 109 233 1000000 2549832
dataline 110 228 1000000 2507602
dataline 111 242 1000000 2683309
dataline 112 225 1000000 3787277
dataline 113 223 1000000 3385594
dataline 114 181 1000000 3457664
dataline 115 212 1000000 3773621
dataline 116 235 1000000 3241294
dataline 117 212 1000000 4039748
dataline 118 196 1000000 4076002
dataline 119 197 1000000 4216571
dataline 120 191 1000000 6046672
dataline 121 205 1000000 5242164
dataline 122 193 1000000 5826027
dataline 123 184 1000000 5985150
dataline 124 193 1000000 5220699
dataline 125 183 1000000 6394398
dataline 126 166 1000000 6804860
dataline 127 182 1000000 7052941
dataline 128 199 1000000 9081431
dataline 129 164 1000000 9493346
dataline 130 161 1000000 9527733
dataline 131 151 1000000 10311288
dataline 132 177 1000000 9186555
dataline 133 169 1000000 11124547
dataline 134 178 1000000 12562868
dataline 135 154 1000000 12741479
dataline 136 167 1000000 15479663
dataline 137 157 1000000 15436601
dataline 138 155 1000000 16690681
dataline 139 148 1000000 17277977
dataline 140 137 1000000 19504895
dataline 141 162 1000000 18781695
dataline 142 138 1000000 22060326
dataline 143 152 1000000 22222123
dataline 144 134 1000000 26356486
dataline 145 150 1000000 24985983
dataline 146 159 1000000 27665757
dataline 147 155 1000000 29276993
dataline 148 124 1000000 31849872
dataline 149 127 1000000 30683069
dataline 150 126 1000000 35491505
*** parfor: user interrupt after 163h, 51min, 56,082 ms cpu time, 21h, 51min, 54,044 ms real time

Friday, December 01, 2023

[iufsumdd] consecutive differences of primes

finite differences are a common way to analyze sequences of numbers.  we compute first, second,... twentieth differences of prime numbers in various ranges.

finite differences work well for analysis when the sequence grows polynomially or exponentially, but primes do neither.  the magnitudes of high-order differences get large.  the first row is OEIS A007442.  here is a plot of A007442 divided by (-2)^n (following the suggestion in the OEIS entry).  it is surprising that something so jagged and random as the prime numbers can result in such a smooth plot.

vaguely similar but totally different: Riemann's prime counting function is another way of arriving at prime numbers through an infinite sum.

the entries in the tables below satisfy A + B = C.

AB
C

primes 2 through 541:

01234567891011121314151617181920
211-13-923-53115-237457-8011213-13894453667-1508141335-95059195769-370803
3202-614-3062-122220-344412-176-9444112-1141426254-53724100710-175034281660
522-48-1632-6098-12468236-11203168-730214840-2747046986-74324106626-129236
74-24-816-2838-26-56304-8842048-41347538-1263019516-2733832302-22610-33286
1122-48-121012-82248-5801164-20863404-50926886-782249649692-55896177960
134-24-4-222-70166-332584-9221318-16881794-936-285814656-46204122064-288534
17220-620-4896-166252-338396-370106858-379411798-3154875860-166470334970
1942-614-2848-7086-865826-264964-29368004-1975044312-90610168500-281884
236-48-1420-22160-2884-238700-19725068-1174624562-4629877890-113384129766
2924-66-2-616-2856-154462-12723096-667812816-2173631592-354941638260802
316-204-810-1228-98308-8101824-35826138-89209856-3902-1911277184-198960
374-24-42-216-70210-5021014-17582556-27829365954-2301458072-121776227164
41220-2014-54140-292512-744798-226-18466890-1706035058-63704105388-162066
4342-2-214-4086-152220-23254572-20725044-1017017998-2864641684-5667874592
4760-412-2646-6668-12-178626-15002972-51267828-1064813038-1499417914-23138
536-48-1420-20256-190448-8741472-21542702-28202390-19562920-5224-4070
5924-660-1858-134258-426598-682548-118-430434964-2304-929483794
616-206-1840-76124-168172-84-134430-54841398-1340-1159874500-288154
674-26-1222-3648-44488-218296-118-544140258-1293862902-213654611686
7124-610-14124-4092-13078178-6628581460-1288049964-150752398032-966032
736-24-4-216-3652-38-52256-4841962318-1142037084-100788247280-5680001247046
79420-614-201614-90204-228-2882514-910225664-63704146492-320720679046-1402164
8362-68-6-430-76114-24-5162226-658816562-3804082788-174228358326-7231181431996
898-422-1026-463890-5401710-43629974-2147844748-91440184098-364792708878-1345738
974-24-816-20-8128-4501170-26525612-1150423270-4669292658-180694344086-6368601143154
10122-48-4-28120-322720-14822960-589211766-2342245966-88036163392-292774506294-848198
1034-244-3292-202398-7621478-29325874-1165622544-4207075356-129382213520-341904542648
107228-2860-110196-364716-14542942-578210888-1952633286-5402684138-128384200744-344574
109410-2032-5086-168352-7381488-28405106-863813760-2074030112-4424672360-143830339910
11314-1012-1836-82184-386750-13522266-35325122-69809372-1413428114-71470196080-524184
12742-618-46102-202364-602914-12661590-18582392-476213980-43356124610-328104802104
1316-412-2856-100162-238312-352324-268534-23709218-2937681254-203494474000-1044696
13728-1628-4462-7674-40-2856266-18366848-2015851878-122240270506-5706961158050
13910-812-1618-14-234-6828322-15705012-1331031720-70362148266-300190587354-1113058
14924-424-1632-34-40350-12483442-829818410-3864277904-151924287164-525704930130
15160-26-1216-2-74310-8982194-485610112-2023239262-74020135240-238540404426-655310
1576-24-6414-76236-5881296-26625256-1012019030-3475861220-103300165886-250884348802
16342-2-218-62160-352708-13662594-48648910-1572826462-4208062586-8499897918-67186
16760-416-4498-192356-6581228-22704046-681810734-1561820506-224121292030732-167200
1736-412-2854-94164-302570-10421776-27723916-48844888-1906-949243652-136468371942
17928-1626-4070-138268-472734-9961144-96842982-1139834160-92816235474-561868
18110-810-1430-68130-204262-262148176-9642986-841622762-58656142658-326394702848
19122-416-3862-74580-114324-7882022-543014346-3589484002-183736376454-723622
1934-212-2224-12-1658-114210-4641234-34088916-2154848108-99734192718-347168580184
197210-10212-2842-5696-254770-21745508-1263226560-5162692984-154450233016-307648
199120-814-1614-1440-158516-14043334-712413928-2506641358-6146678566-7463211810
21112-86-2-2026-118358-8881930-37906804-1113816292-20108171003934-62822191218
2234-24-4-226-92240-5301042-18603014-43345154-3816-300821034-58888128396-245706
227220-624-66148-290512-8181154-13208201338-682418026-3785469508-117310191908
22942-618-4282-142222-306336-166-5002158-548611202-1982831654-4780274598-136346
2336-412-2440-6080-8430170-6661658-33285716-862611826-1614826796-61748171834
23928-1216-2020-4-54200-496992-16702388-29103200-432210648-34952110086-315814
24110-44-4016-58146-296496-678718-522290-11226326-2430475134-205728524208
251600-416-4288-150200-18240196-232-8325204-1797850830-130594318480-751336
25760-412-2646-625018-142236-36-10644372-1277432852-79764187886-432856975194
2636-48-1420-16-1268-12494200-11003308-840220078-46912108122-244970542338-1168046
26924-664-2856-56-30294-9002208-509411676-2683461210-136848297368-6257081274296
2716-2010-24280-86264-6061308-28866582-1515834376-75638160520-328340648588-1241306
2774-210-14428-86178-342702-15783696-857619218-4126284882-167820320248-5927181069624
28128-4-1032-5892-164360-8762118-488010642-2204443620-82938152428-272470476906-823264
283104-1422-2634-72196-5161242-27625762-1140221576-3931869490-120042204436-346358588620
29314-108-48-38124-320726-15203000-564010174-1774230172-5055284394-141922242262-420292
3074-244-3086-196406-7941480-26404534-756812430-2038033842-57528100340-178030315634
311228-2656-110210-388686-11601894-30344862-795013462-2368642812-77690137604-230850
313410-1830-54100-178298-474734-11401828-30885512-1022419126-3487859914-93246123654
31714-812-2446-78120-176260-406688-12602424-47128902-1575225036-33332304083790
33164-1222-3242-5684-146282-5721164-22884190-68509284-8296-292434198-88996
33710-810-1010-1428-62136-290592-11241902-26602434988-1122031274-5479839974
3472200-414-3474-154302-532778-758-2263422-1023220054-23524-14824196310
349420-410-2040-80148-23024620-9843196-68109822-3470-38348181486-576196
35362-46-1020-4068-8216266-9642212-361430126352-41818143138-394710965540
3598-22-410-2028-14-66282-6981248-1402-6029364-35466101320-251572570830-1212538
36760-26-10814-80216-416550-154-20048762-2610265854-150252319258-6417081231164
3736-24-4-222-66136-200134396-21586758-1734039752-84398169006-322450589456-1035236
379420-620-4470-64-66530-17624600-1058222412-4464684608-153444267006-445780711934
38362-614-24266-130464-12322838-598211830-2223439962-68836113562-178774266154-366930
3898-48-10232-124334-7681606-31445848-1040417728-2887444726-6521287380-10077676872
39744-2-834-92210-434838-15382704-45567324-1114615852-2048622168-13396-23904130158
40182-1026-58118-224404-7001166-18522768-38224706-463416828772-37300106254-258406
40910-816-3260-106180-296466-686916-105488472-295210454-2852868954-152152307846
41928-1628-4674-116170-220230-138-170956-28807502-1807440426-83198155694-260486
42110-812-1828-4254-501092-308786-19244622-1057222352-4277272496-104792117610
43124-610-14124-40102-216478-11382698-595011780-2042029724-322961281848074
4336-24-4-216-3662-114262-6601560-32525830-86409304-2572-1947860892-95608
439420-614-2026-52148-398900-16922578-28106646732-2205041414-34716-105642
44362-68-66-2696-250502-792886-232-21467396-15318193646698-140358579272
4498-4220-2070-154252-29094654-23785250-7922404626062-133660438914-1203534
4574-242-2050-8498-38-196748-17242872-2672-387630108-107598305254-7646201763126
461226-1830-341460-234552-9761148200-654826232-77490197656-459366998506-2061762
46348-1212-4-2074-174318-4241721348-634819684-51258120166-261710539140-10632562024980
46712-408-2454-100144-106-2521520-500013336-3157468908-141544277430-524116961724-1723724
4798-48-1630-464438-3581268-34808336-1823837334-72636135886-246686437608-7620001304500
48744-814-16-282-320910-22124856-990219096-3530263250-110800190922-324392542500-887224
4918-46-2-1880-238590-13022644-50469194-1620627948-4755080122-133470218108-344724514856
499424-2062-158352-7121342-24024148-701211742-1960232572-5334884638-126616170132-180872
50366-1642-96194-360630-10601746-28644730-786012970-2077631290-4197843516-10740-115630
50912-1026-5498-166270-430686-11181866-31305110-780610514-10688153832776-126370348944
521216-2844-68104-160256-432748-12641980-26962708-174-915034314-93594222574-489324
52318-1216-2436-5696-176316-516716-716122534-932425164-59280128980-266750534838
54164-812-2040-80140-2002000-7042546-679015840-3411669700-137770268088-520942

primes after 10^10.  the first prime is 10^10 + 19.

01234567891011121314151617181920
+191414-3474-156314-5921028-15701862-864-368615952-4294296314-196872386384-7576041527168-3205990
+3328-2040-82158-278436-542292998-455012266-2699053372-100558189512-371220769564-16788223779078
+61820-4276-120158-106-2501290-35527716-1472426382-4718688954-181708398344-9092582100256-4819008
+6928-2234-443852-3561040-22624164-700811658-2080441768-92754216636-5109141190998-27187526051552
+97612-10-690-304684-12221902-28444650-914620964-50986123882-294278680084-15277543332800-7048330
+103182-1684-214380-538680-9421806-449611818-3002272896-170396385806-8476701805046-37155307371614
+12120-1468-130166-158142-262864-26907322-1820442874-97500215410-461864957376-19104843656084-6683606
+141654-62368-16-120602-18264632-1088224670-54626117910-246454495512-9531081745600-30275224929638
+14760-8-2644-8-136482-12242806-625013788-2995663284-128544249058-457596792492-12819221902116-2481448
+20752-341836-144346-7421582-34447538-1616833328-65260120514-208538334896-489430620194-57933215104
+25918-1654-108202-396840-18624094-863017160-3193255254-88024126358-15453413076440862-5642281850594
+277238-5494-194444-10222232-45368530-1477223322-3277038334-28176-23770171626-5233661286366-2841776
+27940-1640-100250-5781210-23043994-62428550-9448556410158-51946147856-351740763000-15554103010750
+3192424-60150-328632-10941690-22482308-898-388415722-4178895910-203884411260-7924101455340-2526072
+34348-3690-178304-462596-558601410-478211838-2606654122-107974207376-381150662930-10707321546406
+3911254-88126-15813438-4981470-33727056-1422828056-5385299402-173774281780-407802475674-257188
+40366-3438-32-24172-460972-19023684-717213828-2579645550-74372108006-12602267872218486-1084136
+4693246-56148-288512-9301782-34886656-1196819754-2882233634-18016-58150286358-8656502217654
+5013610-5092-140224-418852-17063168-53127786-9068481215618-76166228208-5792921352004-3002562
+53746-4042-4884-194434-8541462-21442474-1282-425620430-60548152042-351084772712-16505583446082
+58362-636-110240-420608-6823301192-553816174-4011891494-199042421628-8778461795524-3578186
+5898-430-74130-180188-74-3521522-434610636-2394451376-107548222586-456218917678-17826623278242
+597426-4456-508114-4261170-28246290-1330827432-56172115038-233632461460-8649841495580-2289692
+60130-18126-42122-312744-16543466-701814124-2874058866-118594227828-403524630596-794112551736
+63112-618-3680-190432-9101812-35527106-1461630126-59728109234-175696227072-163516-2423761413326
+643612-1844-110242-478902-17403554-751015510-2960249506-664625137663556-4058921170950-2575792
+64918-626-66132-236424-8381814-39568000-1409219904-16956-15086114932-342336765058-14048422094204
+6671220-4066-104188-414976-21424044-609258122948-3204299846-227404422722-639784689362-66392
+67932-2026-3884-226562-11661902-2048-2808760-2909467804-127558195318-21706249578622970-2418968
+711126-1246-142336-604736-146-23288480-2033438710-5975467760-21744-167484672548-17959984015576
+72318-634-96194-268132590-24746152-1185418376-21044800646016-189228505064-11234502219578-3973362
+7411228-6298-74-136722-18843678-57026522-2668-1303854022-143212315836-6183861096128-17537842459922
+75340-343624-210586-11621794-20248203854-1570640984-89190172624-302550477742-657656706138-279646
+7936260-186376-576632-230-12044674-1185225278-4820683434-129926175192-17991448482426492-1668808
+799862-126190-20056402-14343470-717813426-2292835228-4649245266-4722-131432474974-12423162849476
+80770-6464-10-144458-10322036-37086248-950212300-11264-122640544-136154343542-7673421607160-3250964
+8776054-154314-5741004-16722540-325427981036-1249039318-95610207388-423800839818-16438043221678
+883654-100160-260430-668868-714-4563834-1145426828-56292111778-216412416018-8039861577874-3170796
+88960-4660-100170-238200154-11703378-762015374-2946455486-104634199606-387968773888-15929223379460
+9491414-4070-68-38354-10162208-42427754-1409026022-4914894972-188362385920-8190341786538-3934754
+96328-26302-106316-6621192-20343512-633611932-2312645824-93390197558-433114967504-21482164634166
+9912432-104210-346530-8421478-28245596-1119422698-47566104168-235556534390-11807122485950-4917578
+993636-72106-136184-312636-13462772-559811504-2486856602-131388298834-6463221305238-24316284126858
+99942-3634-3048-128324-7101426-28265906-1336431734-74786167446-347488658916-11263901695230-2119298
+10416-2418-80196-386716-14003080-745818370-4305292660-180042311428-467474568840-424068-333104
+10474222-62116-190330-6841680-437810912-2468249608-87382131386-156046101366144772-7571721952146
+1051624-4054-74140-354996-26986534-1377024926-3777444004-24660-54680246138-6124001194974-1924118
+105730-1614-2066-214642-17023836-723611156-12848623019344-79340191458-366262582574-729144471858
+108714-2-646-148428-10602134-34003920-1692-661825574-59996112118-174804216312-146570-2572861514126
+110112-840-102280-6321074-12665202228-831018956-3442252122-626864150869742-4038561256840-3275964
+1113432-62178-352442-192-7462748-608210646-1546617700-10564-21178111250-334114852984-20191244566958
+111736-30116-17490250-9382002-33344564-482022347136-3174290072-222864518870-11661402547834-5409622
+1153686-58-84340-6881064-13321230-256-25869370-2460658330-132792296006-6472701381694-28617885721970
+11599228-142256-348376-268-102974-28426784-1523633724-74462163214-351264734424-14800942860182-5279604
+1251120-114114-9228108-370872-18683942-845218488-4073888752-188050383160-7456701380088-24194223992328
+13716022-64136-262502-9962074-451010036-2225048014-99298195110-362510634418-10393341572906-2131102
+1377622-4272-126240-4941078-24365526-1221425764-5128495812-167400271908-404916533572-558196234078
+138328-2030-54114-254584-13583090-668813550-2552044528-71588104508-133008128656-24624-3241181217504
+1411810-2460-140330-7741732-35986862-1197019008-2706032920-28500-4352104032-348742893386-2038730
+141918-1436-80190-444958-18663264-51087038-805258604420-3285299680-244710544644-11453442324338
+1437422-44110-254514-9081398-18441930-1014-219210280-2843266828-145030299934-6007001178994-2296180
+144126-2266-144260-394490-44686916-32068088-1815238396-78202154904-300766578294-11171862207230
+1467444-78116-1349644-3601002-22904882-1006420244-3980676702-145862277528-5388921090044-2323548
+147148-3438-18-38140-316642-12882592-518210180-1956236896-69160131666-261364551152-12335042873568
+151914420-56102-176326-6461304-25904998-938217334-3226462506-129698289788-6823521640064-3919932
+15331824-3646-74150-320658-12862408-43847952-1493030242-67192160090-392564957712-22798685249892
+155142-1210-2876-170338-6281122-19763568-697815312-3695092898-232474565148-13221562970024-6409290
+159330-2-1848-94168-290494-8541592-34108334-2163855948-139576332674-7570081647868-34392666894982
+162328-2030-4674-122204-360738-18184924-1330434310-83628193098-424334890860-17913983455716-6401512
+1651810-1628-4882-156378-10803106-838021006-49318109470-231236466526-9005381664318-29457964994412
+165918-612-2034-74222-7022026-527412626-2831260152-121766235290-434012763780-12814782048616-3118648
+1677126-814-40148-4801324-32487352-1568631840-61614113524-198722329768-517698767138-10700321400332
+168918-26-26108-332844-19244104-833416154-2977451910-85198131046-187930249440-302894330300-316164
+1707164-2082-224512-10802180-42307820-1362022136-3328845848-5688461510-534542740614136-39452
+172320-1662-142288-5681100-20503590-58008516-1115212560-1103646268056-2604841542-25316-124520
+1743446-80146-280532-9501540-22102716-263614081524-641012682-179921549416226-149836629026
+174750-3466-134252-418590-67050680-12282932-48866272-5310-249831720-133610479190-1589168
+17971632-68118-166172-80-164586-11481704-19541386962-780829222-101890345580-11099783323318
+181348-3650-48692-244422-562556-250-5682348-684621414-72668243690-7643982213340-5941088
+186112142-4298-152178-140-6306-8181780-449814568-51254171022-5207081448942-37277488978254
+18732616-4056-542638-146300-512962-271810070-36686119768-349686928234-22788065250506-11492454
+189942-24162-2864-108154-212450-17567352-2661683082-229918578548-13505722971700-624194812641998
+194118-818-2636-4446-58238-13065596-1926456466-146836348630-7720241621128-32702486400050-12230330
+19591010-810-82-12180-10684290-1366837202-90370201794-423394849104-16491203129802-583028010659460
+196920222-6-10168-8883222-937823534-53168111424-221600425710-8000161480682-27004784829180-8389540
+19892244-4-16158-7202334-615614156-2963458256-110176204110-374306680666-12197962128702-35603605587466
+20112680-20142-5621614-38228000-1547828622-5192093934-170196306360-539130908906-14316582027106-2365470
+2037348-20122-4201052-22084178-747813144-2329842014-76262136164-232770369776-522752595448-338364-787254
+207142-12102-298632-11561970-33005666-1015418716-3424859902-96606137006-15297672696257084-11256183022674
+21133090-196334-524814-13302366-44888562-1553225654-3670440400-15970-80280329780-8685341897056-3661212
+2143120-106138-190290-5161036-21224074-697010122-11050369624430-96250249500-5387541028522-17641562696100
+22631432-52100-226520-10861952-28963152-928-735428126-71820153250-289254489768-735634931944-818244
+227746-2048-126294-566866-9442562224-828220772-4369481430-136004200514-245866196310113700-1014678
+23232628-78168-272300-78-6882480-605812490-2292237736-5457464510-45352-49556310010-9009782119970
+234954-5090-10428222-7661792-35786432-1043214814-16838993619158-94908260454-5909681218992-2384652
+2403440-14-76250-5441026-17862854-40004382-2024-690229094-75750165546-330514628024-11656602153768
+24074426-90174-294482-7601068-11463822358-892622192-4665689796-164968297510-537636988108-1864050
+245170-6484-120188-278308-78-7642740-656813266-2446443140-75172132542-240126450472-8759421756466
+2521620-3668-9030230-8421976-38286698-1119818676-3203257370-107584210346-425470880524-1838086
+252726-1632-22-60260-6121134-18522870-45007478-1335625338-50214102762-215124455054-9575621971020

primes after 10^100.  the first prime is 10^100 + 267.

01234567891011121314151617181920
+267682-388144740-21643274-2396-307617284-47918111288-242890516120-10705382148082-41336507605906-1345039023220570-40241238
+949294-244884-14241110878-547214208-3063463370-131602273230-5544181077544-19855683472256-58444849770180-1702066832327986
+124350640-540-3141988-45948736-1642632736-68232141628-281188523126-9080241486688-23722283925696-725048815307318-35152482
+1293690100-8541674-26064142-769016310-3549673396-139560241938-384898578664-8855401553468-33247928056830-1984516446884198
+1983790-754820-9321536-35488620-1918637900-66164102378-142960193766-306876667928-17713244732038-1178833427039034-57404142
+27733666-112604-20125072-1056618714-2826436214-4058250806-113110361052-11033962960714-705629615250700-3036510856210648
+2809102-46492-14083060-54948148-95507950-436810224-62304247942-7423441857318-40955828194404-1511440825845540-40663904
+291156446-9161652-24342654-1402-160035825856-52080185638-4944021114974-22382644098822-692000410731132-1481836416198006
+2967502-470736-7822201252-300219829438-46224133558-308764620572-11232901860558-28211823811128-4087232137964210504316
+346932266-46-5621472-1750-102011420-3678687334-175206311808-502718737268-960624989946-276104-270759011883958-36586288
+3501298220-608910-278-277010400-2536650548-87872136602-190910234550-22335629322713842-29836949176368-2470233060901628
+3799518-388302632-30487630-1496625182-3732448730-543084364011194-194034743164-22698526192674-1552596236199298-79094940
+4317130-86934-24164582-733610216-1214211406-5578-1066854834-182840549130-15266883922822-933328820673336-4289564283827768
+444744848-14822166-27542880-1926-7365828-1624644166-128006366290-9775582396134-541046611340048-2222230640932126-71069438
+4491892-634684-588126954-26625092-1041827920-83840238284-6112681418576-30143325929582-1088225818709820-3013731245240592
+53832585096-4621080-17082430-532617502-55920154444-372984807308-15957562915250-49526767827562-1142749215103280-17176386
+5641308146-366618-628722-289612176-3841898524-218540434324-7884481319494-20374262874886-35999303675788-2073106-2880270
+5949454-220252-1094-21749280-2624260106-120016215784-354124531046-717932837460-725044758581602682-495337610414688
+64032343224284-20807106-1696233864-5991095768-138340176922-186886119528112416-6491861678540-33506945461312-6552268
+6637266274326-19965026-985616902-2604635858-4257238582-9964-67358231944-5367701029354-16721542110618-1090956-4867902
+6903540600-16703030-48307046-91449812-6714-399028618-77322164586-304826492584-6428004384641019662-595885819429608
+74431140-10701360-18002216-20986683098-1070424628-4870487264-140240187758-150216-2043361458126-493919613470750-32738842
+858370290-440416118-14303766-760613924-2407638560-529764751837542-3545521253790-34810708531554-1926809241003950
+8653360-150-24534-13122336-38406318-1015214484-14416-545885060-317010899238-22272805050484-1073653821735858-42442144
+9013210-174510-7781024-15042478-3834433268-1987479602-231950582228-13280422823204-568605410999320-2070628638425468
+922336336-268246-480974-13564984400-1980659728-152348350278-7458141495162-28628505313266-970696617719182-32721896
+925937268-22-234494-382-8584898-1540639922-92620197930-395536749348-13676882450416-43937008012216-1500271428921958
+963144046-256260112-12404040-1050824516-52698105310-197606353812-6183401082728-19432843618516-699049813919244-28366660
+10071486-2104372-11282800-646814008-2818252612-92296156206-264528464388-8605561675232-33719826928746-1444741630473064
+10557276-206376-7561672-36687540-1417424430-3968463910-108322199860-396168814676-16967503556764-751867016025648-34221392
+1083370170-380916-19963872-663410256-1525424226-4441291538-196308418508-8820741860014-39619068506978-1819574438209820
+10903240-210536-10801876-27623622-49988972-2018647126-104770222200-463566977940-21018924545072-968876620014076-39644892
+1114330326-544796-886860-13763974-1121426940-57644117430-241366514374-11239522443180-514369410325310-1963081635297490
+11173356-218252-90-26-5162598-724015726-3070459786-123936273008-6095781319228-27005145181616-930550615666674-24798020
+1152913834162-116-5422082-46428486-1497829082-64150149072-336570709650-13812862481102-41238906361168-913134612241442
+1166717219646-6581540-25603844-649214104-3506884922-187498373080-6716361099816-16427882237278-27701783110096-3154382
+11839368242-612882-10201284-26487612-2096449854-102576185582-298556428180-542972594490-532900339918-44286-453568
+12207610-370270-138264-13644964-1335228890-5272283006-112974129624-1147925151861590-192982295632-4978541864356
+12817240-100132126-11003600-838815538-2383230284-299681665014832-63274113108-131392102650-2022221366502-6847130
+1305714032258-9742500-47887150-82946452316-1331831482-4844249834-18284-28742-995721164280-548062819115026
+13197172290-7161526-22882362-1144-18426768-1300218164-16960139231550-47026-1283141064708-431634813634398-37280162
+13369462-426810-762741218-29864926-623451621204-1556832942-15476-175340936394-32516409318050-2364576454848902
+138313638448-6881292-17681940-1308-10726366-143641737417466-190816761054-23152466066410-1432771431203138-63496650
+13867420432-640604-476172632-23805294-7998301034840-173350570238-15541923751164-826130416875424-3229351258288136
+14287852-208-36128-304804-17482914-2704-498837850-138510396888-9839542196972-45101408614120-1541808825994624-41505952
+15139644-24492-176500-9441166210-769232862-100660258378-5870661213018-23131684103980-680396810576536-1551132821815504
+15783400-152-84324-4442221376-748225170-67798157718-328688625952-11001501790812-26999883772568-49347926304176-8776720
+16183248-236240-120-2221598-610617688-4262889920-170970297264-474198690662-9091761072580-11622241369384-24725446536900
+16431124120-3421376-450811582-2494047292-81050126294-176934216464-218514163404-89644207160-11031604064356-11505880
+1644316124-2221034-31327074-1335822352-3375845244-5064039530-2050-5511073760117516-8960002961196-744152415901380
+16459140-98812-20983942-62848994-1140611486-5396-1111037480-5716018650191276-7784842065196-44803288459856-14132442
+1659942714-12861844-23422710-2412806090-1650626370-19680-38510209926-5872081286712-24151323979528-56725866370740
+16641756-572558-498368298-23326170-1041698646690-58190171416-377282699504-11284201564396-16930586981543414530
+17397184-1460-130666-20343838-4246-55216554-51500113226-205866322222-428916435976-128662-9949044112684-11982004
+1758117046-70536-13681804-408-479816002-3494661726-92640116356-1066947060307314-11235663117780-786932018964124
+17751216-24466-8324361396-520611204-1894426780-30914237169662-99634314374-8162521994214-475154011094804-25288902
+17967192442-366-3961832-38105998-77407836-4134-719833378-89972214740-5018781177962-27573266343264-1419409830774684
+1815963476-7621436-19782188-1742963702-1133226180-56594124768-287138676084-15793643585938-785083416580586-33941370
+18793710-686674-542210446-16463798-763014848-3041468174-162370388946-9032802006574-42648968729752-1736078433855222
+1950324-12132-332656-12002152-38327218-1556637760-94196226576-5143341103294-22583224464856-863103216494438-31438050
+1952712120-200324-544952-16803386-834822194-56436132380-287758588960-11550282206534-41661767863406-1494361228683480
+19539132-80124-220408-7281706-496213846-3424275944-155378301202-5660681051506-19596423697230-708020613739868-26967200
+196715244-96188-320978-32568884-2039641702-79434145824-264866485438-9081361737588-33829766659662-1322733226603542
+1972396-5292-132658-22785628-1151221306-3773266390-119042220572-422698829452-16453883276686-656767013376210-27936040
+198194440-40526-16203350-58849794-1642628658-52652101530-202126406754-8159361631298-32909846808540-1455983031961774
+19863840486-10941730-25343910-663212232-2399448878-100596204628-409182815362-16596863517556-775129017401944-38816344
+1994784486-608636-8041376-27225600-1176224884-51718104032-204554406180-8443241857870-42337349650654-2141440045581788
+20031570-12228-168572-13462878-616213122-2683452314-100522201626-4381441013546-23758645416920-1176374624167388-46972542
+20601448-94-140404-7741532-32846960-1371225480-48208101104-236518575402-13623183041056-634682612403642-2280515439638394
+21049354-234264-370758-17523676-675211768-2272852896-135414338884-7869161678738-33057706056816-1040151216833240-25723886
+2140312030-106388-9941924-30765016-1096030168-82518203470-448032891822-16270322751046-43446966431728-889064611234174
+21523150-76282-606930-11521940-594419208-52350120952-244562443790-7352101124014-15936502087032-24589182343528-814232
+2167374206-324324-222788-400413264-3314268602-123610199228-291420388804-469636493382-371886-1153901529296-5205506
+21747280-1180102566-32169260-1987835460-5500875618-9219297384-8083223746121496-4872761413906-36762108835386
+22027162-118102668-26506044-1061815582-1954820610-16574519216552-57086145242-365780926630-22623045159176-10861772
+2218944-16770-19823394-45744964-396610624036-1138221744-4053488156-220538560850-13356742896872-570259610254192
+2223328754-12121412-1180390998-29045098-734610362-1879047622-132382340312-7748241561198-28057244551596-6851978
+22261782-458200232-7901388-19062194-22483016-842828832-84760207930-434512786374-12445261745872-23003823470450
+23043324-258432-558598-518288-54768-541220404-55928123170-226582351862-458152501346-5545101170068-4279600
+2336766174-1264080-230234714-464414992-3552467242-103412125280-10629043194-53164615558-310953210924718
+2343324048-86120-1504948-393010348-2053231718-361702186818990-63096-9970562394-24939747815186-20701710
+23673288-3834-30-146952-29826418-1018411186-4452-1430240858-44106-73066552424-19315805321212-1288652428629412
+23961250-44-176806-20303436-376610026734-1875426556-3248-117172479358-13791563389632-756531215742888-30914080
+242112460-172630-12241406-330-27647736-12020780223308-120420362186-8997982010476-41756808177576-1517119226582514
+24457246-172458-5941821076-30944972-4284-421831110-97112241766-5376121110678-21652044001896-699361611411322-16809800
+2470374286-136-4121258-20181878688-850226892-66002144654-295846573066-10545261836692-29917204417706-53984783440320
+24777360150-548846-760-1402566-781418390-3911078652-151192277220-481460782166-11550281425986-980772-195815811995896
+25137510-39829886-9002426-524810576-2072039542-72540126028-204240300706-372862270958445214-293893010037738-28139248
+25647112-100384-8141526-28225328-1014418822-3299853488-7821296466-72156-101904716172-24937167098808-1810151042699380
+2575912284-430712-12962506-48168678-1417620490-247241825424310-174060614268-17775444605092-1100270224597870-51948070
+25771296-146282-5841210-23103862-54986314-4234-647042564-149750440208-11632762827548-639761013595168-2735020052498778
+26067150136-302626-11001552-16368162080-1070436094-107186290458-7230681664272-35700627197558-1375503225148578-44482174
+26217286-166324-474452-84-8202896-862425390-71092183272-432610941204-19057903627496-655747411393546-1933359632762096
+26503120158-150-22368-9042076-572816766-45702112180-249338508594-9645861721706-29299784836072-794005013428500-24258554
+266232788-172346-5361172-365211038-2893666478-137158259256-455992757120-12082721906094-31039785488450-1083005423389858
+26901286-164174-190636-24807386-1789837542-70680122098-196736301128-451152697822-11978842384472-534160412559804-29346424
+2718712210-16446-18444906-1051219644-3313851418-74638104392-150024246670-5000621186588-29571327218200-1678662036917420
+27309132-6430-13983062-56069132-1349418280-2322029754-4563296646-253392686526-17705444261068-956842020130800-39836258
+27441126424-9681664-25443526-43624786-49406534-1587851014-156746433134-10840182490524-530735210562380-1970545834489780
+27567550-544696-880982-836424-1541594-934435136-105732276388-6508841406506-28168285255028-914307814784322-21978942

primes after 10^1000. the first prime is 10^1000 + 453.

01234567891011121314151617181920
+453904452-170-3681430-1916-208222720-91410273660-6811921467686-27846984663290-67704847931440-5084486-936089054615980-180131366
+13571356282-5381062-486-399820638-68690182250-407532786494-13170121878592-210719411609562846954-1444537645255090-125515386331707202
+27131638-256524576-448416640-48052113560-225282378962-530518561580-228602-9462384007910-1159842230809714-80260296206191816-516815836
+435113822681100-390812156-3141265508-111722153680-15155631062332978-11748403061672-759051219211292-49450582125931520-310624020735469902
+573316501368-28088248-1925634096-46214419582124-120494364040-8418621886832-452884011620780-3023929076480938-184692500424845882-934716762
+73833018-14405440-1100814840-12118-425644082-118370243546-4778221044970-26420087091940-1861851046241648-108211562240153382-5098708801043800230
+1040115784000-556838322722-1637439826-74288125176-234276567148-15970384449932-1152657027623138-61969914131941820-269717498533929350-1029430608
+119795578-1568-17366554-1365223452-3446250888-109100332872-10298902852894-707663816096568-3434677669971906-137775678264211852-495501258910440810
+175574010-33044818-70989800-1101016426-58212223772-6970181823004-42237449019930-1825020835625130-67803772126436174-231289406414939552-729975680
+215677061514-22802702-12105416-41786165560-4732461125986-24007404796186-923027817374922-3217864258632402-104853232183650146-315036128530945972
+222732220-76642214924206-36370123774-307686652740-12747542395446-44340928144644-1480372026453760-4622083078796914-131385982215909844-354256666
+244931454-34419145698-3216487404-183912345054-6220141120692-20386463710552-665907611650040-1976707032576084-5258906884523862-138346822235727338
+25947111015707612-2646655240-96508161142-276960498678-9179541671906-29485244990964-811703012809014-2001298431934794-5382296097380516-186202538
+2705726809182-1885428774-4126864634-115818221718-419276753952-12766182042440-31260664691984-720397011921810-2188816643557556-88822022175902302
+2973711862-96729920-1249423366-51184105900-197558334676-522666765822-10836261565918-25119864717840-996635621669390-4526446687080280-148328358
+415992190248-257410872-2781854716-91658137118-187990243156-317804482292-9460682205854-524851611703034-2359507641815814-6124807858011838
+437892438-23268298-1694626898-3694245460-5087255166-74648164488-4637761259786-30426626454518-1189204218220738-19432264-323624098929002
+462271125972-86489952-100448518-54124294-1948289840-299288796010-17828763411856-54375246328696-1211526-2266850495692762-286361196
+463396084-26761304-92-15263106-1118-1518870358-209448496722-9868661628980-20256688911725117170-2388003073024258-190668434457029482
+524233408-13721212-161815801988-1630655170-139090287274-490144642114-396688-11344966008342-1876286049144228-117644176266361048-579336822
+558312036-160-406-383568-1431838864-83920148184-202870151970245426-15311844873846-1275451830381368-68499948148716872-312975774638946500
+578671876-566-4443530-1075024546-4505664264-54686-50900397396-12857583342662-788067217626850-3811858080216924-164258902325970726-622360366
+597431310-10103086-722013796-20510192089578-105586346496-8883622056904-45380109746178-2049173042098344-84041978161711824-296389640507676846
+610533002076-41346576-6714-130228786-96008240910-5418661168542-24811065208168-1074555221606614-4194363477669846-134677816211287206-276157538
+613532376-20582442-138-801627484-67222144902-300956626676-13125642727062-553738410861062-2033702035726212-5700797076609390-64870332-62694852
+637293183842304-815419468-3973877680-156054325720-6858881414498-28103225323678-947595815389192-212817581960142011739058-127565184450765068
+640477022688-585011314-2027037942-78374169666-360168728610-13958242513356-41522805913234-5892566-168033831340478-115826126323199884-786169134
+647493390-31625464-895617672-4043291292-190502368442-6672141117532-1638924176095420668-757290429660140-84485648207373758-462969250963032004
+681392282302-34928716-2276050860-99210177940-298772450318-5213921220301781622-755223622087236-54825508122888110-255595492500062754-925916400
+683672530-11905224-1404428100-4835078730-120832151546-71074-3993621903652-577061414535000-3273827268062602-132707382244467262-425853646697206164
+7089713404034-882014056-2025030380-421023071480472-4704361504290-38669628764386-1820327235324330-64644780111759880-181386384271352518-357932954
+722375374-47865236-619410130-11722-11388111186-3899641033854-23626724897424-943888617121058-2932045047115100-6962650489966134-865804366488036
+77611588450-9583936-1592-2311099798-278778643890-13288182534752-45414627682172-1219939217794650-22511404203396303385698-80092400271431234
+781991038-50829782344-2470276688-178980365112-6849281205934-20067103140710-45172205595258-4716754-217177423725328-76706702191338834-419844596
+7923753024705322-2235851986-102292186132-319816521006-8007761134000-13765101078038878504-688852821553554-52981374114632132-228505762432502048
+7976730007792-1703629628-5030683840-133684201190-279770333224-242510-2984721956542-601002414665026-3142782061650758-113873630203996286-367671034
+8276710792-924412592-2067833534-4984467506-785805345490714-5409821658070-40534828655002-1676279430222938-5222287290122656-163674748325830780
+9355915483348-808612856-1631017662-11074-25126144168-4502681117088-23954124601520-810779213460144-2199993437899784-73552092162156032-384795014
+951074896-47384770-345413526588-36200119042-306100666820-12783242206108-35062725352352-853979015899850-3565230888603940-222638982540605528
+100003158321316-21027940-2961282842-187058360720-611504927784-13001641846080-31874387360060-1975245852951632-134035042317966546-711549330
+1001611901348-7865838-2167253230-104216173662-250784316280-372380545916-13413584172622-1239239833199174-81083410183931504-393582784803526826
+10035115385625052-1583431558-5098669446-7712265496-56100173536-7954422831264-821977620806776-47884236102848094-209651280409944042-773924056
+10188921005614-1078215724-1942818460-7676-116269396117436-6219062035822-538851212587000-2707746054963858-106803186200292762-363980014641983488
+1039897714-51684942-3704-96810784-19302-2230126832-5044701413916-33526907198488-1449046027886398-5183932893489576-163687252278003474-457740548
+1117032546-2261238-46729816-8518-21532124602-377638909446-19387743845798-729197213395938-2395293041650248-70197676114316222-179737074273954608
+11424923201012-343451441298-30050103070-253036531808-10293281907024-34461746103966-1055699217697318-2854742844118546-6542085294217534-135688218
+1165693332-242217106442-2875273020-149966278772-497520877696-15391502657792-44530267140326-1085011015571118-2130230628796682-4147068468928670
+119901910-7128152-2231044268-76946128806-218748380176-6614541118642-17952342687300-37097844721008-57311887494376-1267400227457986-62413944
+1208111987440-1415821958-3267851860-89942161428-281278457188-676592892066-10224841011224-10101801763188-517962614783984-3495595866246756
+1210097638-67187800-1072019182-3808271486-119850175910-219404215474-130418-112601044753008-34164389604358-2017197431290798-24804596
+1286479201082-29208462-1890033404-4836456060-43494-393085056-141678-10216754052-26634306187920-10567616111188246486202-76739426
+1295672002-18385542-1043814504-14960769612566-4742481126-56622-151894743836-19093783524490-437969655120817605026-70253224194178158
+1315691643704-48964066-456-726420262-348583370224504-208516591942-11655421615112-855206-382848818156234-52648198123924934-252482132
+1317333868-1192-8303610-772012998-14596-115658206-184012383426-573600449570759906-468369414327746-3449196471276736-128557198196681666
+1356012676-20222780-41105278-1598-1575257050-125806199414-190174-1240301209476-39237889644052-2016421836784772-5728046268124468-27290906
+138277654758-133011683680-1735041298-68756736089240-3142041085446-27143125720264-1052016616620554-204956901084400640833562-197174306
+1389311412-572-1624848-1367023948-27458485282848-304964771242-16288663005952-47999026100388-3875136-965168451677568-156340744385510170
+140343840-7344686-882210278-3510-2260687700-222116466278-8576241377086-179395013004862225252-1352682042025884-104663176229169426-456531964
+1411831063952-413614566768-2611665094-134416244162-391346519462-416864-4934643525738-1130156828499064-62637292124506250-227362538383012674
+1412894058-184-26808224-1934838978-69322109746-147184128116102598-9103283032274-777583017197496-3413822861868958-102856288155650136-207875248
+1453473874-28645544-1112419630-3034440424-37438-19068230714-8077302121946-47435569421666-1694073227730730-4098733052793848-5222511213568814
+14922110102680-55808506-10714100802986-56506211646-5770161314216-26216104678110-751906610789998-1325660011806518568736-38656298131904208
+1502313690-29002926-2208-63413066-53520155140-365370737200-13073942056500-28409563270932-2466602-145008212375254-3808756293247910-203504744
+15392179026718-284212432-40454101620-210230371830-570194749106-784456429976804330-391668410925172-2571230855160348-110256834206533210
+154711816744-21249590-2802261166-108610161600-198364178912-35350-3544801234306-31123547008488-1478713629448040-5509648696276376-156862850
+1555271560-13807466-1843233144-4744452990-36764-19452143562-389830879826-18780483896134-777864814660904-2564844641179890-6058647483874826
+1570871806086-1096614712-14300554616226-56216124110-246268489996-9982222018086-38825146882256-1098754215531444-1940658423288352-37191802
+1572676266-48803746412-875421772-3999067894-122158243728-5082261019864-18644282999742-41052864543902-38751403881768-1390345062455652
+1635331386-11344158-834213018-1821827904-54264121570-264498511638-8445641135314-11055444386166687626628-1002168248552202-157161842
+1649192523024-41844676-52009686-2636067306-142928247140-33292629075029770-6669281107378675390-1001505438530520-108609640259584948
+1651713276-1160492-5244486-1667440946-75622104212-85786-42176320520-6371584404501782768-933966428515466-70079120150975308-295933412
+1684472116-668-323962-1218824272-346762859018426-127962278344-316638-1967082223218-755689619175802-4156365480896188-144958104242576684
+1705631448-7003930-822612084-10404-608647016-109536150382-38294-5133462026510-533367811618906-2238785239332534-6406191697618580-139409084
+1720117483230-429638581680-1649040930-6252040846112088-5516401513164-33071686285228-1076894616944682-2472938233556664-4179050444759012
+1727593978-1066-4385538-1481024440-21590-21674152934-439552961524-17940042978060-44837186175736-77847008827282-8233840296850816190260
+1767372912-15045100-927296302850-43264131260-286618521972-8324801184056-15056581692018-16089641042582593442-526533219158768-59905286
+17964914083596-417235812480-4041487996-155358235354-310508351576-32160218636083054-5663821636024-467189013893436-40746518113949914
+1810575004-576-381412838-2793447582-6736279996-751544106829974-135242269414-4833281069642-30358669221546-2685308273203396-187555900
+1860614428-43909024-1509619648-19780126344842-3408671042-105268134172-213914586314-19662246185680-1763153646350314-114352504267416884
+190489384634-60724552-132-714617476-2924436956-3422628904-79742372400-13799104219456-1144585628718778-68002190153064380-327793796
+1905274672-1438-15204420-727810330-1176877122730-5322-50838292658-10075102839546-722640017272922-3928341285062190-174729416339161706
+1951993234-29582900-28583052-1438-405610442-2592-56160241820-7148521832036-438685410046522-2201049045778778-89667226164432290-281491584
+198433276-58421941614-549463867850-58752185660-4730321117184-25548185659668-1196396823768288-4388844874765064-117059294169468412
+198709218-162361808-388089214236-50902126908-287372644152-14376343104850-630430011804320-2012016030876616-4229423052409118-66564348
+1989272022202044-2072-298815128-3666676006-160464356780-7934821667216-31994505500020-831584010756456-1141761410114888-1415523055566138
+1991294222264-28-506012140-2153839340-84458196316-436702873734-15322342300570-28158202440616-661158-1302726-404034241410908-176931642
+19955126862236-50887080-939817802-45118111858-240386437032-658500768336-515250-3752041779458-1963884-534306837370566-135520734391372980
+2022374922-28521992-23188404-2731666740-128528196646-221468109836253086-8904541404254-184426-730695232027498-98150168255852246-604741784
+2071592070-860-3266086-1891239424-6178868118-24822-111632362922-6373685138001219828-749137824720546-66122670157702078-348889538731025040
+2092291210-11865760-1282620512-22364633043296-136454251290-274446-1235681733628-627155017229168-4140212491579408-191187460382135502-737698758
+210439244574-70667686-1852-1603449626-93158114836-23156-3980141610060-453792210957618-2417295650177284-99608052190948042-355563256645131678
+2104634598-24926205834-1788633592-435322167891680-4211701212046-29278626419696-1321533826004328-4943076891339990-164615214289568422-496243228
+2150612106-18726454-1205215706-9940-21854113358-329490790876-17158163491834-679564212788990-2342644041909222-73275224124953208-206674806328145498
+2171672344582-559836545766-3179491504-216132461386-9249401776018-33038085993348-1063745018482782-3136600251677984-81721598121470692-162696622
+2174014816-1016-19449420-2602859710-124628245254-463554851078-15277902689540-46441027845332-1288322020311982-3004361439749094-4122593012943352
+2222173800-29607476-1660833682-64918120626-218300387524-6767121161750-19545623201230-50378887428762-97316329705480-1476836-28282578106942938
+2260178404516-913217074-3123655708-97674169224-289188485038-7928121246668-18366582390874-2302870-261528228644-2975941478660360-179016188
+2268575356-46167942-1416224472-4196671550-119964195850-307774453856-58999055421688004-23290228202492-2153077048900946-100355828187620148
+2322137403326-622010310-1749429584-4841475886-111924146082-136134-35774642220-22410185873470-1332827827370176-5145488287264320-125148492
+2329534066-28944090-718412090-1883027472-36038341589948-171908606446-15987983632452-745480814041898-2408470635809438-37884172-10545808

primes in the vicinity of the record prime gap between 18361375334787046697 and 18361375334787046697 + 1550 .

01234567891011121314151617181920
-79090-4870-136256-452752-11721668-198212402874-1548046284-111276233462-441804768760-12502581939212
-7004222-66120-196300-420496-314-7424114-1260630804-64992122186-208342326956-481498688954-1018858
-65864-4454-76104-12076182-10563372-849218198-3418857194-86156118614-154542207456-329904670894
-5942010-2228-16-44258-8742316-51209706-1599023006-2896232458-3592852914-122448340990-955984
-57430-12612-60214-6161442-28044586-62847016-59563496-347016986-69534218542-6149941753530
-54418-618-48154-402826-13621782-16987321060-24602613516-52548149008-3964521138536-3694978
-5261212-30106-248424-53642084-9661792-1400-243413542-3903296460-247444742084-25564429131948
-51424-1876-142176-112-116504-882826392-383411108-2549057428-150984494640-18143586575506-22234426
-490658-663464-228388-378-561218-34427274-1438231938-93556343656-13197184761148-1565892046964426
-48464-8-3298-16416010-4341162-22243832-710817556-61618250100-9760623441430-1089777231305506-82620256
-42056-4066-66-4170-424728-10621608-327610448-44062188482-7259622465368-745634220407734-51314750120062970
-36416260-70166-254304-334546-16687172-33614144420-5374801739406-499097412951392-3090701668748220-144084670
-3484226-7096-8850-30212-11225504-26442110806-3930601201926-32515687960418-1795562437841204-75336450142934220
-30668-44268-3820182-9104382-2093884364-282254808866-20496424708850-999520619885580-3749524667597770-117367320
-23824-1834-30-18202-7283472-1655663426-197890526612-12407762659208-52863569890374-1760966630102524-4976955080116052
-2146164-48184-5262744-1308446870-134464328722-7141641418432-26271484604018-771929212492858-1966702630346502-46294444
-2082220-44136-3422218-1034033786-87594194258-385442704268-12087161976870-31152744773566-717416810679476-1594794224285760
-18642-2492-2061876-812223446-53808106664-191184318826-504448768154-11384041658292-24006023505308-52684668337818-14112852
-1441868-1141670-624615324-3036252856-84520127642-185622263706-370250519888-7423101104706-17631583069352-577503411398398
-12686-461556-45769078-1503822494-3166443122-5798078084-106544149638-222422362396-6584521306194-27056825623364-11443734
-40401510-30204502-59607456-917011458-1485820104-2846043094-72784139974-296056647742-13994882917682-582037011083894
+01550-15101482-14581496-17142288-34005246-835614634-2969067190-156082351686-7517461518194-29026885263524-9030320
+155040-282438-218574-11121846-31106278-1505637500-88892195604-400060766448-13844942360836-37667965462160
+159012-462-180356-538734-12643168-877822444-51392106712-204456366388-618046976342-14059601695364-1141506
+1602858-118176-182196-5301904-561013666-2894855320-97744161932-251658358296-429618289404553858-3346488
+161066-6058-614-3341374-37068056-1528226372-4242464188-89726106638-71322-140214843262-27926307743006
+16766-2528-3201040-23324350-722611090-1605221764-255381691235316-211536703048-19493684950376-11974124
+168245060-312720-12922018-28763864-49625712-3774-862652228-176220491512-12463203001008-702374816146790
+168654110-252408-572726-858988-10987501938-1240043602-123992315292-7548081754688-40227409123042-20377700
+1740164-142156-164154-132130-110-3482688-1046231202-80390191300-439516999880-22680525100302-1125465824154002
+19042214-8-1022-220-4582340-777420740-49188110910-248216560364-12681722832250-615435612899344-25981188
+1926366-18122018-4381882-543412966-2844861722-137306312148-7078081564078-33221066744988-1308184424277782
+196242-12-63238-4201444-35527532-1548233274-75584174842-395660856270-17580283422882-633685611195938-18952518
+200430-182670-3821024-21083980-795017792-4231099258-220818460610-9017581664854-29139744859082-775658011921778
+203412896-312642-10841872-39709842-2451856948-121560239792-441148763096-12491201945108-28974984165198-5876466
+204620104-216330-442788-20985872-1467632430-64612118232-201356321948-486024695988-9523901267700-17112682523192
+2066124-112114-112346-13103774-880417754-3218253620-83124120592-164076209964-256402315310-443568811924-1840500
+21901222234-9642464-50308950-1442821438-2950437468-4348445888-4643858908-128258368356-10285762599290
+2202144236-7301500-25663920-54787010-80667964-60162404-55012470-69350240098-6602201570714-3359106
+221618240-494770-10661354-15581532-1056-1021948-3612185411920-56880170748-420122910494-17883923217334
+2234258-254276-296288-204-26476-11581846-1664-175813774-44960113868-249374490372-8778981428942-2067754
+2492422-20-884-230450-682688182-342212016-3118668908-135506240998-387526551044-638812391364
+2496262-2876-146220-2326870-32408594-1917037722-66598105492-146528163518-87768-2474481233212

primes in the vicinity of 39433867730216371575457664399, the start of the smallest known nontrivial prime 21-tuplet, a region of maximal density of 21 consecutive primes, from http://www.pzktupel.de/SMArchiv/smadditions.php .  the 21-tuplet runs from +0 to +84.

01234567891011121314151617181920
-1638158-146164-190268-4901022-18982480-530-910636128-96650215554-430726803378-14443782576858-46726948728332
-14801218-2678-222532-8765821950-963627022-60522118904-215172372652-6410001132480-20958364055638-8061954
-146830-852-144310-344-2942532-768617386-3350058382-96268157480-268348491480-9633561959802-40063168062166
-14382244-92166-34-6382238-51549700-1611424882-3788661212-110868223132-471876996446-20465144055850-7763872
-141666-4874132-6721600-29164546-64148768-1300423326-49656112264-248744524570-10500682009336-37080226637094
-13501826206-540928-13161630-18682354-423610322-2633062608-136480275826-525498959268-16986862929072-4864586
-133244232-334388-388314-238486-18826086-1600836278-73872139346-249672433770-7394181230386-19355142649244
-1288276-102540-7476248-13964204-992220270-3759465474-110326184098-305648490968-705128713730293128
-1012174-4854-742324-11482808-571810348-1732427880-4485273772-121550185320-21416086021006858-4249784
-8381266-20-72326-8241660-29104630-697610556-1697228920-4777863770-28840-2055581015460-32429268616262
-712132-14-92254-498836-12501720-23463580-641611948-188581599234930-234398809902-22274665373336-11836898
-580118-106162-244338-414470-6261234-28365532-6910-286650922-199468575504-14175643145870-646356212497858
-4621256-8294-7656-156608-16022696-1378-977648056-148546376036-8420601728306-33176926034296-10492760
-45068-261218-20-100452-99410941318-1115438280-100490227490-466024886246-15893862716604-44584647063188
-38242-1430-2-120352-5421002412-983627126-62210127000-238534420222-7031401127218-17418602604724-3775566
-340281628-122232-190-4422512-742417290-3508464790-111534181688-282918424078-614642862864-11708421522904
-3124444-9411042-6322070-49129866-1779429706-4674470154-101230141160-190564248222-307978352062-338274
-26888-5016152-5901438-28424954-792811912-1703823410-3107639930-4940457658-597564408413788-160026
-18038-34168-438848-14042112-29743984-51266372-76668854-94748254-2098-1567257872-146238312362
-1424134-270410-556708-8621010-11421246-12941188-620-12206156-1777042200-88366166124-279376
-138138-136140-146152-154148-132104-48-106568-18404936-1161424430-4616677758-113252129634
+024-66-2-616-2856-154462-12723096-667812816-2173631592-354941638260802
+26-204-810-1228-98308-8101824-35826138-89209856-3902-1911277184-198876
+84-24-42-216-70210-5021014-17582556-27829365954-2301458072-121692225702
+12220-2014-54140-292512-744798-226-18466890-1706035058-63620104010-150184
+1442-2-214-4086-152220-23254572-20725044-1017017998-2856240390-4617415126
+1860-412-2646-6668-12-178626-15002972-51267828-1056411828-5784-31048179242
+246-48-1420-20256-190448-8741472-21542702-273612646044-36832148194-485740
+3024-660-1858-134258-426598-682548-34-14727308-30788111362-337546845074
+326-206-1840-76124-168172-84-134514-15065836-2348080574-226184507528-823634
+384-26-1222-3648-44488-218380-9924330-1764457094-145610281344-316106-391934
+4224-610-14124-4092-130162-6123338-1331439450-88516135734-34762-7080403434166
+446-24-4-216-3652-3832-4502726-997626136-4906647218100972-7428022726126-7916794
+50420-614-201614-6-4182276-725016160-22930-1848148190-6418301983324-519066812207672
+5462-68-6-4308-4241858-49748910-6770-24778146342-4936401341494-32073447017004-14380642
+608-422-102638-4161434-311639362140-31548121564-347298847854-18658503809660-736363813715732
+684-24-81664-3781018-16828206076-2940890016-225734500556-10179961943810-35539786352094-11367866
+7222-4880-314640-664-8626896-2333260608-135718274822-517440925814-16101682798116-50157729529876
+744-2488-234326-24-15266034-1643637276-75110139104-242618408374-6843541187948-22176564514104-9829574
+782292-14692302-15504508-1040220840-3783463994-103514165756-275980503594-10297082296448-531547012269264
+80494-54-54394-12482958-589410438-1699426160-3952062242-110224227614-5261141266740-30190226953794-15356654
+849840-108340-8541710-29364544-65569166-1336022722-47982117390-298500740626-17522823934772-840286017138350
+182138-68232-514856-12261608-20122610-41949362-2526069408-181110442126-10116562182490-44680888735490-16407482
+32070164-282342-370382-404598-15845168-1589844148-111702261016-5695301170834-22855984267402-767199213361972
+390234-11860-2812-22194-9863584-1073028250-67554149314-308514601304-11147641981804-34045905689980-9297296
+624116-5832-16-10172-7922598-714617520-3930481760-159200292790-513460867040-14227862285390-36073165591400
+74058-2616-26162-6201806-454810374-2178442456-77440133590-220670353580-555746862604-13219261984084-2869756
+79832-10-10136-4581186-27425826-1141020672-3498456150-87080132910-202166306858-459322662158-8856721024564
+83022-20126-322728-15563084-55849262-1431221166-3093045830-69256104692-152464202836-223514138892203276
+8522106-196406-8281528-25003678-50506854-976414900-2342635436-4777250372-20678-84622342168-883114
+854108-90210-422700-9721178-13721804-29105136-852612010-12336260029694-105300257546-5409461050604
+96218120-212278-272206-194432-11062226-33903484-326-973632294-75606152246-283400509658-916934
+980138-92666-6612238-6741120-1164943158-1006222558-4331276640-131154226258-407276781628
+111846-2672-60-54250-436446-44-10703252-690412496-2075433328-5451495104-181018374352-826876
+1164204612-114196-18610402-11142182-36525592-825812574-2118640590-85914193334-4525241081614
+11846658-1028210-176412-7121068-14701940-26664316-861219404-45324107420-259190629090-1484046
+1250124-44-2092-166236-300356-402470-7261650-429610792-2592062096-151770369900-8549561766592
+137480-6472-7470-6456-4668-256924-26466496-1512836176-89674218130-485056911636-1216368
+1454168-2-46-81022-188668-17223850-863221048-53498128456-266926426580-304732-1170666
+1470246-62-2232-166480-10542128-478212416-3245074958-138470159654121848-14753985825392
+1494300-40034-134314-5741074-26547634-2003442508-6351221184281502-13535504349994-11645958
+152430-4-4034-100180-260500-15804980-1240022474-21004-42328302686-10720482996444-729596416075056