+ factorial.rb