prog.pl 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #!/usr/bin/perl
  2. # Prime-indexed primes q such that prime(q) + q + 1 and prime(q) - q - 1 are both prime-indexed primes.
  3. # https://oeis.org/A318752
  4. use 5.014;
  5. use ntheory qw(is_prime nth_prime forprimes next_prime);
  6. # New terms:
  7. # 76232459, 83005829, 94265687, 125445101, 164054921, 165553511, 176691533, 199379657, 208672097, 228757709, 238916543, 240583781, 243132233, 243211679, 243443303, 243564509, 260234813
  8. # 30 322305653
  9. # 31 331268027
  10. # 32 344089883
  11. # 33 433795139
  12. # 34 435806027
  13. # 35 435908573
  14. # 36 449928023
  15. # 37 523987799
  16. # 38 538980317
  17. # 39 540024449
  18. # 40 543944327
  19. # 41 551642309
  20. # 42 598534499
  21. # 43 605750921
  22. # 44 627077849
  23. # 45 649003697
  24. # 46 654136697
  25. # 47 672927209
  26. # 48 702395159
  27. # 49 718915343
  28. # 50 733639307
  29. # 51 775344113
  30. # 52 798099719
  31. # 53 812649743
  32. # 54 829685309
  33. # 55 853990439
  34. # 56 864734867
  35. # 57 867110117
  36. # 58
  37. # 59
  38. # 60
  39. # 61
  40. # 62
  41. # 63
  42. # 64
  43. # 65
  44. # Start from this term and search for next terms
  45. my $from = 1839927611;
  46. {
  47. my $prev_i;
  48. my $prev_p;
  49. sub after_prime1 {
  50. my ($n) = @_;
  51. if (not(defined($prev_i))) {
  52. $prev_i = $n;
  53. $prev_p = nth_prime($n);
  54. return $prev_p;
  55. }
  56. for (1 .. $n - $prev_i) {
  57. $prev_p = next_prime($prev_p);
  58. }
  59. $prev_i = $n;
  60. return $prev_p;
  61. }
  62. }
  63. {
  64. my $prev_i;
  65. my $prev_p;
  66. sub after_prime2 {
  67. my ($n) = @_;
  68. if (not(defined($prev_i))) {
  69. $prev_i = $n;
  70. $prev_p = nth_prime($n);
  71. return $prev_p;
  72. }
  73. for (1 .. $n - $prev_i) {
  74. $prev_p = next_prime($prev_p);
  75. }
  76. $prev_i = $n;
  77. return $prev_p;
  78. }
  79. }
  80. sub prime_count {
  81. my ($n) = @_;
  82. chomp(my $pi = `../primecount $n`);
  83. $pi;
  84. }
  85. forprimes {
  86. my $p = after_prime1($_);
  87. my $q = after_prime2($p);
  88. my $x = $q - $p - 1;
  89. my $y = $q + $p + 1;
  90. if (is_prime($x) and is_prime($y) and is_prime(prime_count($x)) and is_prime(prime_count($y))) {
  91. say $p;
  92. }
  93. } prime_count($from), 1e10;