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.
;nats (defn p1 [] (println (apply + (filter #(or (= 0 (rem % 3)) (= 0 (rem % 5))) (take 999 (nats)))) ) )
p1()-> p1(1,0). p1(1000,Sum)->io:format("~w~n",[Sum]); p1(C,Sum)-> if C rem 5 == 0; C rem 3 == 0-> p1(C+1, Sum+C); true-> p1(C+1, Sum) end.
#Enumerable def p1 puts (1...1000).select{|i|i%3==0 or i%5==0}.sum end
def p1 { var x=0 for(i <- (1 until 1000) if i%3==0 || i%5==0) x+=i println(x) }