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++
#include <iostream>
using namespace std;
int summation( int n)
{
int sum = 0;
for ( int i = 1; i <= n; i++)
sum += (i * i);
return sum;
}
int main()
{
int n = 2;
cout << summation(n);
return 0;
}
|
Java
import java.util.*;
import java.lang.*;
class GFG
{
public static int summation( int n)
{
int sum = 0 ;
for ( int i = 1 ; i <= n; i++)
sum += (i * i);
return sum;
}
public static void main(String args[])
{
int n = 2 ;
System.out.println(summation(n));
}
}
|
Python3
def summation(n):
return sum ([i * * 2 for i in
range ( 1 , n + 1 )])
if __name__ = = "__main__" :
n = 2
print (summation(n))
|
C#
using System;
class GFG
{
public static int summation( int n)
{
int sum = 0;
for ( int i = 1; i <= n; i++)
sum += (i * i);
return sum;
}
public static void Main()
{
int n = 2;
Console.WriteLine(summation(n));
}
}
|
PHP
<?php
function summation( $n )
{
$sum = 0;
for ( $i = 1; $i <= $n ; $i ++)
$sum += ( $i * $i );
return $sum ;
}
$n = 2;
echo summation( $n );
?>
|
Javascript
<script>
function summation(n)
{
let sum = 0;
for (let i = 1; i <= n; i++)
sum += (i * i);
return sum;
}
let n = 2;
document.write(summation(n));
</script>
|
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++
#include <iostream>
using namespace std;
int summation( int n)
{
return (n * (n + 1) *
(2 * n + 1)) / 6;
}
int main()
{
int n = 10;
cout << summation(n) << endl;
return 0;
}
|
C
#include <stdio.h>
int summation( int n)
{
return (n * (n + 1) *
(2 * n + 1)) / 6;
}
int main()
{
int n = 10;
printf ( "%d" , summation(n));
return 0;
}
|
Java
import java.util.*;
import java.lang.*;
class GFG
{
public static int summation( int n)
{
return (n * (n + 1 ) *
( 2 * n + 1 )) / 6 ;
}
public static void main(String args[])
{
int n = 10 ;
System.out.println(summation(n));
}
}
|
Python3
def summation(n):
return (n * (n + 1 ) *
( 2 * n + 1 )) / 6
if __name__ = = '__main__' :
n = 10
print (summation(n))
|
C#
using System;
class GFG
{
public static int summation( int n)
{
return (n * (n + 1) *
(2 * n + 1)) / 6;
}
public static void Main()
{
int n = 10;
Console.WriteLine(summation(n));
}
}
|
PHP
<?php
function summation( $n )
{
return ( $n * ( $n + 1) *
(2 * $n + 1)) / 6;
}
$n = 10;
echo summation( $n );
?>
|
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.