Project Euler Problem 6: Sum Square Difference

The source code for this problem can be found here.

Problem Statement

The sum of the squares of the first ten natural numbers is,
\(1^2 + 2^2 + \dots + 10^2 = 385\)
The square of the sum of the first ten natural numbers is,
\((1 + 2 + \dots + 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.

Solution Discussion

Simply iteratively build and sum the components of the two sequences:

  • sum of the squares
  • square of the sums

for the natural numbers \(1,2,\dots,100\)

Return the absolute value of the difference of these two sums.

Solution Implementation

from math import fabs


def solve():
    """ Compute the answer to Project Euler's problem #6 """
    upper_bound = 100
    sum_of_squares = 0
    square_of_sums = 0
    for i in range(1, upper_bound + 1):
        sum_of_squares += i * i
        square_of_sums += i
    square_of_sums = square_of_sums * square_of_sums
    answer = int(fabs(square_of_sums - sum_of_squares))
    return answer


expected_answer = 25164150
solutions.problem6.solve()

Compute the answer to Project Euler’s problem #6