036 Double-base palindromes -- v2.sf 528 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/ruby
  2. # Daniel "Trizen" Șuteu
  3. # Date: 09 October 2017
  4. # https://github.com/trizen
  5. # https://projecteuler.net/problem=36
  6. # Runtime: 0.320s
  7. var sum = 0
  8. var limit = 1e6
  9. for k in (0 .. limit.log2.ceil>>1) {
  10. [0,1].variations_with_repetition(k, {|*a|
  11. next if a[0]==0
  12. for b in (['', '0', '1']) {
  13. with (Num(a.join + b + a.join.flip, 2)) { |n|
  14. if (n<limit && Str(n)==Str(n).flip) {
  15. sum += n
  16. }
  17. }
  18. }
  19. })
  20. }
  21. say sum