is_absolute_euler_pseudoprime.pl 563 B

1234567891011121314151617181920212223
  1. #!/usr/bin/perl
  2. # Check if a given number is an absolute Euler pseudoprime.
  3. # These are composite n such that abs(a^((n-1)/2) mod n) = 1 for all a with gcd(a,n) = 1.
  4. # See also:
  5. # https://oeis.org/A033181 -- Absolute Euler pseudoprimes
  6. # https://en.wikipedia.org/wiki/Euler_pseudoprime
  7. use 5.014;
  8. use ntheory qw(:all);
  9. use experimental qw(signatures);
  10. sub is_absolute_euler_pseudoprime ($n) {
  11. is_carmichael($n)
  12. and vecall { (($n-1)>>1) % ($_-1) == 0 } factor($n);
  13. }
  14. foroddcomposites {
  15. say $_ if is_absolute_euler_pseudoprime($_);
  16. } 1e6;