Project Euler Problem 006

Statement

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.

Solution

For this solution I applied the well known formulas which have constant time:

(1)
\begin{align} \sum_{i=1}^N i = \frac {(n * (n+1))} {2} \end{align}
(2)
\begin{align} \sum_{i=1}^N i^2 = \frac {n * (n+1) * (2n+1)} {6} \end{align}

The resulting code:

if __name__ == '__main__':
    n = 100
    result = (((n * (n + 1)) // 2) ** 2) - ((n * (n + 1) * ((2 * n) + 1)) // 6)
    print("The result is:", result)

The Python file is available for download here.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License