prog.sf 703 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/ruby
  2. # Smallest base-n strong Fermat pseudoprime with n distinct prime factors.
  3. # See also:
  4. # https://oeis.org/A271874
  5. func a(n) {
  6. return nil if (n < 2)
  7. var x = 1
  8. var y = 2*x
  9. loop {
  10. #say "Sieving range: #{[x,y]}"
  11. var arr = n.strong_fermat_psp(n,x,y)
  12. if (arr.len >= 1) {
  13. return arr[0]
  14. }
  15. x = y+1
  16. y = 2*x
  17. }
  18. }
  19. for n in (2..100) {
  20. say "a(#{n}) = #{a(n)}"
  21. }
  22. __END__
  23. a(2) = 2047
  24. a(3) = 8911
  25. a(4) = 129921
  26. a(5) = 381347461
  27. a(6) = 333515107081
  28. a(7) = 37388680793101
  29. a(8) = 713808066913201
  30. a(9) = 665242007427361
  31. a(10) = 179042026797485691841
  32. a(11) = 8915864307267517099501
  33. a(12) = 331537694571170093744101