174 Counting the number of hollow square laminae that can form one two three distinct arrangements.sf 458 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/ruby
  2. # Author: Trizen
  3. # Date: 20 May 2017
  4. # Translated: 16 November 2023
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=174
  7. # Runtime: 41.892s
  8. var counts = Hash()
  9. var tiles = 1_000_000
  10. for k in (1 .. tiles>>2) {
  11. var sum = 0
  12. for j in (k+2 .. Inf `by` 2) {
  13. sum += (2*j + 2*(j - 2))
  14. sum <= tiles || break
  15. counts{sum} := 0 ++
  16. }
  17. }
  18. say counts.values.count {|value|
  19. value.is_between(1, 10)
  20. }