prog_simple.sf 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/ruby
  2. # Least number k such that k^n and k^n-1 contain the same number of prime factors (counted with multiplicity) or 0 if no such k exists.
  3. # https://oeis.org/A241793
  4. # Known terms:
  5. # 3, 34, 5, 15, 17, 55, 79, 5, 53, 23, 337, 13, 601, 79, 241, 41, 18433, 31, 40961, 89, 3313, 1153
  6. # Lower-bounds:
  7. # a(23) > 170369
  8. include("../../../factordb/auto.sf")
  9. func a(m, from=2) {
  10. for k in (from..Inf) {
  11. var n = bigomega(k)*m
  12. var v = (k**m - 1)
  13. say "[#{k}] Checking: #{v}"
  14. if (k.is_prime && (v.len > 60)) {
  15. say ":: Checking factordb..."
  16. var f = try { FF_factordb(v) }
  17. if (defined(f)) {
  18. say ":: Success..."
  19. if (f.len == n) {
  20. return k
  21. }
  22. else {
  23. next
  24. }
  25. }
  26. else {
  27. say ":: Fail..."
  28. }
  29. }
  30. v.is_almost_prime(n) || next
  31. return k
  32. }
  33. }
  34. var from = 157668
  35. for n in (23) {
  36. say "a(#{n}) = #{a(n, from)}"
  37. }