Skip to content

Difference Of Square

Intro

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

(1 + 2 + ... + 10)² = 55² = 3025.

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

1² + 2² + ... + 10² = 385.

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

Task

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

You are not expected to discover an efficient solution to this yourself from first principles; research is allowed, indeed, encouraged. Finding the best algorithm for the problem is a key skill in software engineering.

The Code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "difference_of_squares.h"
#include <cmath>

namespace difference_of_squares {
int sum_of_squares(int test) {
    int var01{};
    for(int i=1; i<=test; i++)
    {
        var01+=std::pow(i,2);
    }
    return var01;
}

int square_of_sum(int test)
{
    int var02{};
    for(int i=1; i<=test; i++) {
        var02+=i;
    }
    return std::pow(var02,2);
}

int difference(int test)
{
    return square_of_sum(test)-sum_of_squares(test);
}
}  // namespace difference_of_squares
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#if !defined(DIFFERENCE_OF_SQUARES_H)
#define DIFFERENCE_OF_SQUARES_H

namespace difference_of_squares {
int square_of_sum(int);
int sum_of_squares(int);
int difference(int);
}  // namespace difference_of_squares

#endif // DIFFERENCE_OF_SQUARES_H 

Last update: February 10, 2021

Comments