prog.pl 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/usr/bin/perl
  2. # a(n) is the least k for which A237196(k) = n.
  3. # https://oeis.org/A372648
  4. # Known terms:
  5. # 4, 10, 43, 1, 2, 26, 3, 28, 13, 2311675, 8396, 12918370, 37697697
  6. # New terms:
  7. # a(14) = 4096146353
  8. # a(n) > a(14), for n >= 15.
  9. use 5.036;
  10. use ntheory qw(:all);
  11. use Test::More;
  12. plan tests => 5;
  13. my @P = (undef, @{primes(100)});
  14. sub a($n, $pn = nth_prime($n)) {
  15. return undef if ($n <= 0);
  16. my $t = 1;
  17. for(my $j = 1; ; ++$j) {
  18. if ($j != $n) {
  19. $t *= $P[$j];
  20. }
  21. if (!is_prime($t+$pn)) {
  22. if ($j >= $n) {
  23. return $j-1;
  24. }
  25. else {
  26. return $j;
  27. }
  28. }
  29. }
  30. return undef;
  31. }
  32. is(a(2311675), 10);
  33. is(a(8396), 11);
  34. is(a(12918370), 12);
  35. is(a(37697697), 13);
  36. is(a(4096146353), 14);
  37. my @table;
  38. my $k = 4096146353-100;
  39. my $p = nth_prime($k);
  40. forprimes {
  41. my $v = a($k, $_);
  42. if ($v >= 14 and !$table[$v]) {
  43. $table[$v] = $k;
  44. say "a($v) = $k";
  45. }
  46. ++$k;
  47. } $p, 1e12;
  48. __END__
  49. a(4) = 1
  50. a(5) = 2
  51. a(7) = 3
  52. a(1) = 4
  53. a(2) = 10
  54. a(9) = 13
  55. a(6) = 26
  56. a(8) = 28
  57. a(3) = 43
  58. a(11) = 8396
  59. a(10) = 2311675
  60. a(12) = 12918370
  61. a(13) = 37697697
  62. a(14) = 4096146353