Difference between sum of the squares of first n natural numbers and square of sum

Last Updated : 28 Mar, 2023

Given an integer n, find the absolute difference between sum of the squares of first n natural numbers and square of sum of first n natural numbers.
Examples :

```Input : n = 3
Output : 22
Sum of first three numbers is 3 + 2 + 1 = 6
Square of the sum =  36
Sum of squares of first three is 9 + 4 + 1 = 14
Absolute difference = 36 - 14 = 22

Input : n = 10
Output : 2640```

Recommended Practice

Brute Force:

Iterate over the first n natural numbers twice: once to calculate the sum of their squares, and once to calculate their sum. Then, the absolute difference between the sum of squares and the square of the sum can be computed using the formula:

(1^2 + 2^2 + … + n^2) – (1 + 2 + … + n)^2

C++

 `#include` `using` `namespace` `std;`   `int` `Square_Diff(``int` `n){` `    ``int` `sumOfSquares = 0;` `    ``int` `sum = 0;`   `    ``for` `(``int` `i = 1; i <= n; i++) {` `        ``sumOfSquares += ``pow``(i, 2);` `        ``sum += i;` `    ``}`   `    ``int` `squareOfSum = ``pow``(sum, 2);` `    ``int` `absDifference = ``abs``(sumOfSquares - squareOfSum);` `    ``return` `absDifference;` `}` `int` `main() {` `    ``int` `n = 10;` `    ``cout << Square_Diff(n);` `    ``return` `0;` `    ``return` `0;` `}`

Java

 `import` `java.lang.Math;`   `public` `class` `Main {` `    ``public` `static` `int` `squareDiff(``int` `n) {` `        ``int` `sumOfSquares = ``0``;` `        ``int` `sum = ``0``;`   `        ``for` `(``int` `i = ``1``; i <= n; i++) {` `            ``sumOfSquares += Math.pow(i, ``2``);` `            ``sum += i;` `        ``}`   `        ``int` `squareOfSum = (``int``) Math.pow(sum, ``2``);` `        ``int` `absDifference = Math.abs(sumOfSquares - squareOfSum);` `        ``return` `absDifference;` `    ``}`   `    ``public` `static` `void` `main(String[] args) {` `        ``int` `n = ``10``;` `        ``System.out.println(squareDiff(n));` `    ``}` `}`

Python3

 `import` `math`   `def` `square_diff(n):` `    ``"""calculate the absolute difference between the sum of ` `       ``squares and the square of sum of the first n natural numbers"""` `    ``sum_of_squares ``=` `0` `    ``sum_ ``=` `0` `    ``for` `i ``in` `range``(``1``, n``+``1``):` `        ``sum_of_squares ``+``=` `math.``pow``(i, ``2``)` `        ``sum_ ``+``=` `i`   `    ``square_of_sum ``=` `math.``pow``(sum_, ``2``)` `    ``abs_difference ``=` `abs``(sum_of_squares ``-` `square_of_sum)` `    ``return` `int``(abs_difference)`   `n ``=` `10` `print``(square_diff(n))`

C#

 `// Here is the converted code in C# with comments`   `using` `System;`   `namespace` `SquareDifference {` `class` `Program {` `    ``static` `int` `Square_Diff(``int` `n)` `    ``{` `        ``int` `sumOfSquares = 0;` `        ``int` `sum = 0;` `        ``// Loop to calculate sum of squares and sum of` `        ``// numbers` `        ``for` `(``int` `i = 1; i <= n; i++) {` `            ``sumOfSquares += (``int``)Math.Pow(` `                ``i, 2); ``// Add the square of the current` `                       ``// number to sumOfSquares` `            ``sum += i; ``// Add the current number to sum` `        ``}`   `        ``int` `squareOfSum = (``int``)Math.Pow(` `            ``sum, 2); ``// Calculate the square of the sum of` `                     ``// numbers` `        ``int` `absDifference = Math.Abs(` `            ``sumOfSquares` `            ``- squareOfSum); ``// Calculate the absolute` `                            ``// difference between the sum of` `                            ``// squares and the square of sum` `        ``return` `absDifference; ``// Return the absolute` `                              ``// difference` `    ``}`   `    ``static` `void` `Main(``string``[] args)` `    ``{` `        ``int` `n = 10;` `        ``Console.WriteLine(Square_Diff(` `            ``n)); ``// Output the absolute difference between` `                 ``// the sum of squares and the square of sum` `    ``}` `}` `}` `// This code is contributed by sarojmcy2e`

Javascript

 `function` `Square_Diff(n) {` `    ``let sumOfSquares = 0;` `    ``let sum = 0;`   `    ``for` `(let i = 1; i <= n; i++) {` `        ``sumOfSquares += Math.pow(i, 2);` `        ``sum += i;` `    ``}`   `    ``let squareOfSum = Math.pow(sum, 2);` `    ``let absDifference = Math.abs(sumOfSquares - squareOfSum);` `    ``return` `absDifference;` `}`   `const n = 10;` `console.log(Square_Diff(n));` `// This code is contributed by Prajwal Kandekar`

Output

`2640`

Time Complexity: O(n)

Auxiliary Space: O(1)

Approach :
1. Find the sum of square of first n natural numbers.
2. Find the sum of first n numbers and square it.
3. Find the absolute difference between both the sums and print it.
Below is the implementation of above approach :

C++

 `// C++ program to find the difference` `// between sum of the squares of the` `// first n natural numbers and square` `// of sum of first n natural number` `#include ` `using` `namespace` `std;`   `int` `Square_Diff(``int` `n){`   `int` `l, k, m;`   `    ``// Sum of the squares of the` `    ``// first n natural numbers is` `    ``l = (n * (n + 1) * (2 * n + 1)) / 6;` `    `  `    ``// Sum of n naturals numbers` `    ``k = (n * (n + 1)) / 2;`   `    ``// Square of k` `    ``k = k * k;` `    `  `    ``// Differences between l and k` `    ``m = ``abs``(l - k);` `    `  `    ``return` `m;`   `}`   `// Driver Code` `int` `main()` `{` `    ``int` `n = 10;` `    ``cout << Square_Diff(n);` `    ``return` `0;` `    `  `}`   `// This code is contributed by 'Gitanjali' .`

Java

 `// Java program to find the difference` `// between sum of the squares of the` `// first n natural numbers and square` `// of sum of first n natural number`   `public` `class` `GfG{`   `static` `int` `Square_Diff(``int` `n){`   `int` `l, k, m;` `    ``// Sum of the squares of the` `    ``// first n natural numbers is` `    ``l = (n * (n + ``1``) * (``2` `* n + ``1``)) / ``6``;` `    `  `    ``// Sum of n naturals numbers` `    ``k = (n * (n + ``1``)) / ``2``;`   `    ``// Square of k` `    ``k = k * k;` `    `  `    ``// Differences between l and k` `    ``m = Math.abs(l - k);` `    `  `    ``return` `m;`   `}`   `// Driver Code` `public` `static` `void` `main(String s[])` `{` `    ``int` `n = ``10``;` `    ``System.out.println(Square_Diff(n));     ` `    `  `}` `} ` `// This code is contributed by 'Gitanjali'.`

Python

 `# Python3 program to find the difference` `# between sum of the squares of the` `# first n natural numbers and square` `# of sum of first n natural number`   `def` `Square_Diff(n):`   `    ``# sum of the squares of the` `    ``# first n natural numbers is` `    ``l ``=` `(n ``*` `(n ``+` `1``) ``*` `(``2` `*` `n ``+` `1``)) ``/` `6` `    `  `    ``# sum of n naturals numbers` `    ``k ``=` `(n ``*` `(n ``+` `1``)) ``/` `2`   `    ``# square of k` `    ``k ``=` `k ``*``*` `2` `    `  `    ``# Differences between l and k` `    ``m ``=` `abs``(l ``-` `k)` `    `  `    ``return` `int``(m)`   `# Driver code` `print``(Square_Diff(``10``))`

C#

 `using` `System;`   `public` `class` `GFG` `{`   `  ``static` `int` `Square_Diff(``int` `n)` `  ``{`   `    ``int` `l, k, m;`   `    ``// Sum of the squares of the` `    ``// first n natural numbers is` `    ``l = (n * (n + 1) * (2 * n + 1)) / 6;`   `    ``// Sum of n naturals numbers` `    ``k = (n * (n + 1)) / 2;`   `    ``// Square of k` `    ``k = k * k;`   `    ``// Differences between l and k` `    ``m = Math.Abs(l - k);`   `    ``return` `m;`   `  ``}`   `  ``// Driver Code` `  ``public` `static` `void` `Main()` `  ``{` `    ``int` `n = 10;` `    ``Console.WriteLine(Square_Diff(n));    ` `  ``}` `}`   `// This code is contributed by akshitsaxena09.`

PHP

 ``

Javascript

 ``

Output

`2640`

Time Complexity: O(1)
Auxiliary Space: O(1)

Previous
Next