346 Strong Repunits.sf 522 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/ruby
  2. # Author: Trizen
  3. # Date: 21 September 2016
  4. # Translated: 16 November 2023
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=346
  7. # Runtime: 15.666s
  8. var table = Set()
  9. var limit = 10**12
  10. for j in (3..Inf) {
  11. var found = false
  12. var repunit = j.of(1)
  13. for base in (2..Inf) {
  14. #var n = idiv(ipow(base,j) - 1, base - 1)
  15. var n = repunit.digits2num(base)
  16. n < limit || break
  17. found ||= true
  18. table << n
  19. }
  20. found || break
  21. }
  22. say 1+table.sum