Project Euler

Problem #12

The sequence of triangle numbers is generated by adding the natural numbers. So the 7^(th) triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

Let us list the factors of the first seven triangle numbers:

 1: 1
 3: 1,3
 6: 1,2,3,6
10: 1,2,5,10
15: 1,3,5,15
21: 1,3,7,21
28: 1,2,4,7,14,28

We can see that 28 is the first triangle number to have over five divisors.

What is the value of the first triangle number to have over five hundred divisors?

Erlang: Running time = 9.57s
+%echo

+%prime_list

+%prime_iterator

+%factor

+%divisor_count

+%triangles

p12()->
	p12(1).
p12(N)->
	T=triangles(N),
	C=divisor_count(T),
	if
		C > 500 ->
			io:format("~w~n",[T]);
		true->
			p12(N+1)
	end.

Ruby: Running time = 4.56s
+#PrimeList

+#factors

+#divisor_count

def p12
  i=j=1
  i+=(j+=1) while divisor_count(i)<=500
  puts i
end

Scala: Running time = 0.52s
+//PrimeList

+//factor

+//divisorCount

def p12{
  var a=1
  var b=1
  while(divisorCount(a)<501){
    b+=1
    a+=b
  }
  println(a)
}