pythonize this!

Lie Ryan lie.1296 at gmail.com
Wed Jun 16 06:47:04 EDT 2010


On 06/15/10 21:49, superpollo wrote:
> goal (from e.c.m.): evaluate
> 1^2+2^2+3^2-4^2-5^2+6^2+7^2+8^2-9^2-10^2+...-2010^2, where each three
> consecutive + must be followed by two - (^ meaning ** in this context)
> 
> my solution:
> 
>>>> s = 0
>>>> for i in range(1, 2011):
> ....     s += i**2
> ....     if not (i+1)%5:
> ....         s -= 2*i**2
> ....     if not i%5:
> ....         s -= 2*i**2
> ....
>>>> print s
> 536926141

Probably bending the rules a little bit:

>>> sum(x**2 - 8*x - 20 for x in range(1, 2010, 5))
536926141

another variation:

>>> sum((x - 10) * (x + 2) for x in range(1, 2010, 5))
536926141




More information about the Python-list mailing list