prog.sf 887 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/ruby
  2. # Numbers that are both infinitary and noninfinitary harmonic numbers
  3. # https://oeis.org/A348922
  4. # Known terms:
  5. # 45, 60, 54600, 257040, 1801800, 2789640, 4299750, 47297250, 1707259680, 4093362000
  6. # a(7) > 10^10, if it exists. - Amiram Eldar, Nov 04 2021
  7. # Equivalently, numbers n such that isigma(n) divides n*isigma_0(n) and nisigma(n) divides n*nisigma_0(n).
  8. # Non-squarefree numbers n such that A049417(n) divides n*A037445(n) and A348271(n) divides n*A348341(n).
  9. # See also:
  10. # https://oeis.org/A247077
  11. func isok(n) {
  12. imod(n*isigma0(n), isigma(n)) == 0 || return false
  13. imod(n*nisigma0(n), nisigma(n)) == 0 || return false
  14. return true
  15. }
  16. assert([45, 60, 54600, 257040, 1801800, 2789640, 4299750, 47297250, 1707259680, 4093362000].all(isok))
  17. Math.smooth_numbers(41.primes...).each {|n|
  18. say n if isok(n)
  19. #say n if (n > 1e12 && isok(n))
  20. }