prog.sf 616 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/ruby
  2. # a(n) is the smallest Carmichael number such that gpf(p-1) = prime(n) for all prime factors p of a(n), or 0 if no such number exists.
  3. # a(2) = 1729
  4. # a(3) = 252601
  5. # a(4) = 1152271
  6. # a(5) = 1615681
  7. # a(6) = 4335241
  8. # a(7) = 172947529
  9. # Lower bound for n > 2:
  10. # a(n) >= (2*p + 1)*(2*3*p + 1)*(2*7*p + 1), where p = prime(n).
  11. func a(n) {
  12. var p = prime(n)
  13. var from = (2*p + 1)*(2*3*p + 1)*(2*7*p + 1)
  14. from = 1 if(n == 2)
  15. from..Inf -> first {|k|
  16. k.is_composite && k.is_carmichael && k.factor.all { .dec.gpf == p }
  17. }
  18. }
  19. for n in (2..10) {
  20. say ("a(#{n}) = ", a(n))
  21. }