Continuing to work my way through some of of Project Euler. Problem 6 solved by my code below. Is it better to use sumOfTheSquares += i*i or utilize Math.Pow()?

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.

class Program
    static void Main(string[] args)

    static int SumSquareDifference(int upperValue)
        int sumOfTheSquares = 0;
        for (int i = 1; i <= upperValue; i++)
            sumOfTheSquares += (int)Math.Pow(i,2); //Can't formulate this myself...

        int squareOfTheSums =  (int)Math.Pow((upperValue + 1) * (upperValue / 2),2);

        return squareOfTheSums - sumOfTheSquares;
  • \$\begingroup\$ Just one small question - why are you not reading the overview of problem that is provided after solving almost any task on projecteuler.net (including this one)? \$\endgroup\$ – pgs May 12 '17 at 10:03

I don't know about the difference between sumOfTheSquares += i*i and Math.pow() but the sum of squared of first n natural numbers is as follows

\$ 1^2 + 2^2 + 3^2 + 4^2 = \dfrac{n(n+1)(2n+1)}{6}\$

So its faster than using a for loop

Edit: General way to prove this is to use mathematical induction
Here's a link!

  • \$\begingroup\$ Where can I find the derivation of this? I read through a few examples but was unable understand them. I was trying to come up with the generic solution but it kept eluding me. \$\endgroup\$ – IvenBach May 12 '17 at 5:13
  • 1
    \$\begingroup\$ there is a write up of this on trans4mind.com/personal_development/mathematics/series/… \$\endgroup\$ – AlanT May 12 '17 at 7:28
  • \$\begingroup\$ @IvenBach, Concrete Mathematics by Graham, Knuth and Patashnik discusses the general indefinite sum of "rising powers", from which the sum of simple powers can be obtained. \$\endgroup\$ – Peter Taylor May 12 '17 at 8:01
  • 1
    \$\begingroup\$ Please use \$\TeX\$ markup for math formulae. \$\endgroup\$ – vnp May 12 '17 at 9:54
  • \$\begingroup\$ @AlanT Found that site and tried to go through it late at night, failed. Went through it today and makes sense. Had to step through it manually for it to make sense. \$\endgroup\$ – IvenBach May 13 '17 at 0:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.