upper-bounds.sf 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/ruby
  2. # a(n) is the smallest number k > 1 such that bigomega(k^n - 1) = n.
  3. # https://oeis.org/A368163
  4. # Known terms:
  5. # 3, 4, 4, 10, 17, 8, 25, 5, 28, 9, 81, 13, 289, 64, 100, 41, 6561, 31, 6657, 57, 529, 1025
  6. # a(24) = 79; a(27) = 961; a(28) = 729; a(30) = 361; a(32) = 2047.
  7. # Lower-bounds:
  8. # a(23) > 40448
  9. # a(25) > 22720
  10. # a(26) > 7768
  11. # Conjectured lower-bounds:
  12. # a(23) > 57344
  13. # a(25) > 24576
  14. # Upper-bounds:
  15. # a(23) <= 286721 (found by Jon E. Schoenfield, Sep 25 2018)
  16. # a(23) <= 196609
  17. # a(25) <= 28561
  18. # a(26) <= 14015
  19. # Close call:
  20. # bigomega(98305^23 - 1) = 22
  21. # Strong-candidates for a(23) (not yet factorized):
  22. # 131073,
  23. # Cf. A241793.
  24. Num!VERBOSE=true
  25. Num!USE_FACTORDB=true
  26. Num!USE_CONJECTURES=true
  27. func a(n, from=1) {
  28. for k in (from..Inf) {
  29. #k.is_prime && next
  30. #is_prob_squarefree(k**n - 1, 1e3) && next
  31. say "[#{n}] Testing: #{k}"
  32. try {
  33. Sig.ALRM {
  34. die "alarm\n"
  35. }
  36. Sys.alarm(60)
  37. if (is_almost_prime(k**n - 1, n)) {
  38. say "a(#{n}) = #{k}"
  39. return k
  40. }
  41. Sys.alarm(0)
  42. }
  43. catch {
  44. say "Timeout..."
  45. Sys.run("killall yafu")
  46. }
  47. }
  48. }
  49. say a(26)