pseudoprime_surrounded_by_primes.pl 759 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/perl
  2. # Pseudoprimes n to base 2 such that n-2, n+2, n-4 and n+4 are primes.
  3. # https://oeis.org/A228455
  4. # Known terms:
  5. # 280743771536011785, 666787209284980785, 1386744766793550165, 6558237049521329745, 11646802313400102465
  6. use 5.020;
  7. use strict;
  8. use warnings;
  9. use ntheory qw(:all);
  10. use Math::GMPz;
  11. my %seen;
  12. while (<>) {
  13. next if /^\h*#/;
  14. /\S/ or next;
  15. my $n = (split(' ', $_))[-1];
  16. $n || next;
  17. is_pseudoprime($n, 2) || next;
  18. if ($n > ((~0) >> 1)) {
  19. $n = Math::GMPz->new("$n");
  20. }
  21. if (is_prime($n - 2) and is_prime($n - 4) and is_prime($n + 2) and is_prime($n + 4)) {
  22. say $n if !$seen{$n}++;
  23. if ($n > 11646802313400102465) {
  24. die "Found new term: $n";
  25. }
  26. }
  27. }