prog.sf 485 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/ruby
  2. # Least totient number k > 1 such that n*k is a nontotient number, or 0 if no such number exists.
  3. # https://oeis.org/A361058
  4. # Try to find a(30) using powerful numbers.
  5. var n = 30
  6. var from = (2.5 * 10**10)
  7. var to = int(1.2*from)
  8. loop {
  9. say "Sieving range: #{[from, to]}"
  10. 2.powerful(from, to).each {|k|
  11. if (k.is_totient && !(k*n -> is_totient)) {
  12. die "Found: a(#{n}) <= #{k}\n"
  13. }
  14. }
  15. from = to+1
  16. to = int(1.2*from)
  17. }