# Sum of squares of first n natural numbers

Given n, find sum of squares of first n natural numbers.

Examples :

```Input : n = 2
Output : 5
Explanation: 1^2+2^2 = 5

Input : n = 8
Output : 204
Explanation :
1^2 + 2^2 + 3^2 + 4^2 + 5^2 + 6^2 + 7^2 + 8^2 = 204
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Naive approach :
A naive approach will be to run a loop from 1 to n and sum up all the squares.

 `// CPP program to calculate ` `// 1^2+2^2+3^2+... ` `#include ` `using` `namespace` `std; ` ` `  `// Function to calculate sum ` `int` `summation(``int` `n) ` `{ ` `    ``int` `sum = 0; ` `    ``for` `(``int` `i = 1; i <= n; i++) ` `        ``sum += (i * i); ` ` `  `    ``return` `sum; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 2; ` `    ``cout << summation(n); ` `    ``return` `0; ` `} `

 `// Java program to calculate ` `// 1^2+2^2+3^2+... ` `import` `java.util.*; ` `import` `java.lang.*; ` ` `  `class` `GFG  ` `{ ` `    ``// Function to calculate sum ` `    ``public` `static` `int` `summation(``int` `n) ` `    ``{ ` `        ``int` `sum = ``0``; ` `        ``for` `(``int` `i = ``1``; i <= n; i++) ` `            ``sum += (i * i); ` ` `  `        ``return` `sum; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `n = ``2``; ` `        ``System.out.println(summation(n)); ` `    ``} ` `} ` ` `  `// This code is contributed  ` `// by Sachin Bisht `

 `# Python3 program to  ` `# calculate 1 ^ 2 + 2 ^ 2 + 3 ^ 2+.. ` ` `  `# Function to calculate series ` `def` `summation(n): ` `    ``return` `sum``([i``*``*``2` `for` `i ``in`  `               ``range``(``1``, n ``+` `1``)]) ` ` `  `# Driver Code  ` `if` `__name__ ``=``=` `"__main__"``: ` `    ``n ``=` `2` `    ``print``(summation(n)) `

 `// C# program to calculate  ` `// 1^2+2^2+3^2+... ` `using` `System; ` `class` `GFG  ` `{ ` ` `  `    ``// Function to calculate sum ` `    ``public` `static` `int` `summation(``int` `n) ` `    ``{ ` `        ``int` `sum = 0; ` `        ``for` `(``int` `i = 1; i <= n; i++) ` `            ``sum += (i * i); ` ` `  `        ``return` `sum; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 2; ` ` `  `        ``Console.WriteLine(summation(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m `

 ` `

Output :
```5
```

Efficient Approach :
There exists a formula for finding the sum of squares of first n numbers.
1 + 2 + ……….. + n = n(n+1) / 2
12 + 22 + ……… + n2 = n(n+1)(2n+1) / 6

```n * (n + 1) * (2*n + 1) / 6

Example : n = 3
= 3 * (3 + 1) * (2*3 + 1) / 6
= (3 * 4 * 7) / 6
= 84 / 6
= 14
```

How does this work?

```We can prove this formula using induction.
We can easily see that the formula is true for
n = 1 and n = 2 as sums are 1 and 5 respectively.

Let it be true for n = k-1. So sum of k-1 numbers
is (k - 1) * k * (2 * k - 1)) / 6

In the following steps, we show that it is true
for k assuming that it is true for k-1.

Sum of k numbers = Sum of k-1 numbers + k2
= (k - 1) * k * (2 * k - 1) / 6 + k2
= ((k2 - k) * (2*k - 1) + 6k2)/6
= (2k3 - 2k2 - k2 + k + 6k2)/6
= (2k3 + 3k2 + k)/6
= k * (k + 1) * (2*k + 1) / 6
```
 `// C++ program to get the sum  ` `// of the following series ` `#include ` `using` `namespace` `std; ` ` `  `// Function calculating ` `// the series ` `int` `summation(``int` `n) ` `{ ` `    ``return` `(n * (n + 1) *  ` `        ``(2 * n + 1)) / 6; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `n = 10; ` `    ``cout << summation(n) << endl; ` `    ``return` `0; ` `} ` ` `  `// This code is contributed by shubhamsingh10 `

 `// C program to get the sum  ` `// of the following series ` `#include ` ` `  `// Function calculating ` `// the series ` `int` `summation(``int` `n) ` `{ ` `    ``return` `(n * (n + 1) *  ` `           ``(2 * n + 1)) / 6; ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` `    ``int` `n = 10; ` `    ``printf``(``"%d"``, summation(n)); ` `    ``return` `0; ` `} `

 `// Java program to get  ` `// the sum of the series ` `import` `java.util.*; ` `import` `java.lang.*; ` ` `  `class` `GFG  ` `{ ` `    ``// Function calculating  ` `    ``// the series ` `    ``public` `static` `int` `summation(``int` `n) ` `    ``{ ` `        ``return` `(n * (n + ``1``) *  ` `               ``(``2` `* n + ``1``)) / ``6``; ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `n = ``10``; ` `        ``System.out.println(summation(n)); ` `    ``} ` `} ` ` `  `// This code is contributed ` `// by Sachin Bisht `

 `# Python code to find sum of  ` `# squares of first n natural numbers. ` `def` `summation(n): ` `    ``return` `(n ``*` `(n ``+` `1``) ``*`  `           ``(``2` `*` `n ``+` `1``)) ``/` `6` `     `  `# Driver Code ` `if` `__name__ ``=``=` `'__main__'``: ` `    ``n ``=` `10` `    ``print``(summation(n)) `

 `// C# program to get the sum ` `// of the series ` `using` `System; ` ` `  `class` `GFG  ` `{ ` ` `  `    ``// Function calculating ` `    ``// the series ` `    ``public` `static` `int` `summation(``int` `n) ` `    ``{ ` `        ``return` `(n * (n + 1) *  ` `               ``(2 * n + 1)) / 6; ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 10; ` ` `  `        ``Console.WriteLine(summation(n)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m `

 ` `

Output :

```385
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

This article is contributed by Rahul_ and KANCHAN RAY. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :