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 

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

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP program to calculate
// 1^2+2^2+3^2+...
#include <iostream>
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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to calculate
// 1^2+2^2+3^2+...
  
// Function to calculate sum
function summation($n)
{
    $sum = 0;
    for ($i = 1; $i <= $n; $i++)
        $sum += ($i * $i);
  
    return $sum;
}
  
    // Driver code
    $n = 2;
    echo summation($n);
      
// This code is contributed by aj_36
?>

chevron_right



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++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to get the sum 
// of the following series
#include <iostream>
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

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to get the sum 
// of the following series
#include <stdio.h>
  
// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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))

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to get the
// sum of the following series
  
// Function calculating
// the series
function summation($n)
{
    return ($n * ($n + 1) * 
           (2 * $n + 1)) / 6;
}
  
// Driver Code
$n = 10;
echo summation($n);
  
// This code is contributed by aj_36
?>

chevron_right


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.




My Personal Notes arrow_drop_up

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.