Euler Problem 6

Back to overview.

The sum of the squares of the first ten natural numbers is,

$1^2 + 2^2 + ... + 10^2 = 385$

The square of the sum of the first ten natural numbers is,

$(1 + 2 + ... + 10)^2 = 55^2 = 3025$

Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is $3025 − 385 = 2640$.

Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.

Okay, this is as straightforward as it can get.

In [1]:
s = sum([x for x in range(1, 101)])**2  - sum([x**2 for x in range(1, 101)])
assert(s == 25164150)
print(s)
25164150

General solution.

In [2]:
def diff_between_sum_of_squares_and_square_sum(n):
    return sum([x for x in range(1, n + 1)])**2  - sum([x**2 for x in range(1, n + 1)])

assert(diff_between_sum_of_squares_and_square_sum(100) == 25164150)
assert(diff_between_sum_of_squares_and_square_sum(10) == 2640)