070 Totient permutation.sf 481 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/ruby
  2. # Author: Trizen
  3. # Date: 21 March 2023
  4. # https://github.com/trizen
  5. # https://projecteuler.net/problem=70
  6. # Runtime: 26.131s
  7. var min_ratio = Inf
  8. var min_value = -1
  9. 1e7.each_semiprime {|n|
  10. var phi = n.phi
  11. var r = (n / phi)
  12. if ((r < min_ratio) && (n.to_s.sort == phi.to_s.sort)) {
  13. say "Checking n = #{n} with ratio #{r.round(-10)}"
  14. min_ratio = r
  15. min_value = n
  16. }
  17. }
  18. say "#{min_value} with ratio #{min_ratio.round(-10)}"