Guest User

171

a guest
Mar 7th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.56 KB | None | 0 0
  1. k = gets.chomp
  2. k_arr = []
  3. k.split("").each { |e| k_arr << e.to_i }
  4. k_i = k.to_i
  5. final = []
  6. sieved_combos = []
  7.  
  8. combos = [0,1,2,3,4,5,6,7,8,9,].repeated_combination(k_arr.size).to_a
  9.  
  10. combos.each do |com|
  11.   testvar = 0
  12.   testvar = com.map{ |x| x**2 }.inject(0, &:+)
  13.   if ((Math.sqrt(testvar) % 1) == 0)
  14.     sieved_combos <<  com
  15.   end
  16. end
  17.  
  18. sieved_combos.each do |sc|
  19.   final << sc.permutation.map { |digits| digits.join.to_i }
  20. end
  21.  
  22. final = final.reduce(:concat)
  23.  
  24. final = final.uniq
  25.  
  26. puts final.inject(0) { |sum, i| ( i <= k_i ) ? sum += i : sum }
Advertisement
Add Comment
Please, Sign In to add comment