Project Euler

Problem #28

Starting with the number 1 and moving to the right in a clockwise direction a 5 by 5 spiral is formed as follows:

21 22 23 24 25
20  7  8  9 10
19  6  1  2 11
18  5  4  3 12
17 16 15 14 13

It can be verified that the sum of both diagonals is 101.

What is the sum of both diagonals in a 1001 by 1001 spiral formed in the same way?

Erlang: Running time = 0.204s
p28()->p28(3,1).
p28(1003,T)->io:format("~w~n",[T]);
p28(N,T)->
	p28(N+2,T+lists:sum(lists:seq(N*N,N*N-3*(N-1),1-N))).

Ruby: Running time = 0.03s
+#Enumerable

def p28
  sum=1
  (3..1001).step(2) do |i|

    sum+=(0..3).map{|j|i**2-j*(i-1)}.sum
  end
  puts sum
end