7Jan/090
Project Euler: Problem 1 in Ruby
I've been working through some of the Project Euler problems in Ruby and I thought I'd post my solutions. I refuse to "cheat", but it's really neat to see all the different ways other people solve the problems afterwards.
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
total = 0 1000.times do |i| if i % 3 == 0 || i % 5 == 0 total += i end end puts total
I googled around a bit after I finished and particularly liked this solution, which seemed more ruby-ish to me:
answer = (0..999).select { |a| a%3 ==0 || a%5==0 } puts answer.inject { |sum, n| sum+n }
And, from the forums I thought Olathe's solution was really neat, although mathily over my head:
class Integer def sum_mod modulus n = self.div modulus modulus * n * (n + 1) / 2 end end num = 999 sum = num.sum_mod(3) + num.sum_mod(5) - num.sum_mod(15) puts "Sum is #{ sum }."



























