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;
  
// Fucntion 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 
{
    // Fucntion 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 
{
  
    // Fucntion 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+...
  
// Fucntion 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/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


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.



Improved By : jit_t