fork download
  1. queries = []
  2. while (line = gets)
  3. n = line.to_i
  4. break if n == 0
  5. queries << n
  6. end
  7.  
  8. exit if queries.empty?
  9.  
  10. max_n = queries.max
  11. sum_of_digits = Array.new(max_n + 1)
  12. fact = 1
  13.  
  14. (1..max_n).each do |i|
  15. fact *= i
  16. sum_of_digits[i] = fact.to_s.each_char.map(&:to_i).sum
  17. end
  18.  
  19. queries.each do |n|
  20. puts sum_of_digits[n]
  21. end
  22.  
Success #stdin #stdout 0.01s 8108KB
stdin
8

stdout
9