Given a positive integer n. The task is to find the sum of the sum of first n natural number.
Examples:
Input: n = 3
Output: 10
Explanation:
Sum of first natural number: 1
Sum of first and second natural number: 1 + 2 = 3
Sum of first, second and third natural number = 1 + 2 + 3 = 6
Sum of sum of first three natural number = 1 + 3 + 6 = 10
Input: n = 2
Output: 4
A simple solution is to one by one add triangular numbers.
C++
#include <iostream>
using namespace std;
int seriesSum( int n)
{
int sum = 0;
for ( int i=1; i<=n; i++)
sum += i*(i+1)/2;
return sum;
}
int main()
{
int n = 4;
cout << seriesSum(n);
return 0;
}
|
Java
import java.io.*;
class GFG {
static int seriesSum( int n)
{
int sum = 0 ;
for ( int i = 1 ; i <= n; i++)
sum += i * (i + 1 ) / 2 ;
return sum;
}
public static void main (String[] args)
{
int n = 4 ;
System.out.println(seriesSum(n));
}
}
|
Python3
def seriessum(n):
sum = 0
for i in range ( 1 , n + 1 ):
sum + = i * (i + 1 ) / 2
return sum
n = 4
print (seriessum(n))
|
C#
using System;
class GFG {
static int seriesSum( int n)
{
int sum = 0;
for ( int i = 1; i <= n; i++)
sum += i * (i + 1) / 2;
return sum;
}
public static void Main()
{
int n = 4;
Console.WriteLine(seriesSum(n));
}
}
|
PHP
<?php
function seriesSum( $n )
{
$sum = 0;
for ( $i = 1; $i <= $n ; $i ++)
$sum += $i * ( $i + 1) / 2;
return $sum ;
}
$n = 4;
echo (seriesSum( $n ));
?>
|
Javascript
<script>
function seriesSum(n) {
var sum = 0;
for (i = 1; i <= n; i++)
sum += i * ((i + 1) / 2);
return sum;
}
var n = 4;
document.write(seriesSum(n));
</script>
|
Time Complexity: O(N), for traversing from 1 till N to calculate the required sum.
Auxiliary Space: O(1), as constant extra space is required.
An efficient solution is to use direct formula n(n+1)(n+2)/6
Mathematically, we need to find, Σ ((i * (i + 1))/2), where 1 <= i <= n
So, lets solve this summation,
Sum = Σ ((i * (i + 1))/2), where 1 <= i <= n
= (1/2) * Σ (i * (i + 1))
= (1/2) * Σ (i2 + i)
= (1/2) * (Σ i2 + Σ i)
We know Σ i2 = n * (n + 1) * (2*n + 1) / 6 and
Σ i = n * ( n + 1) / 2.
Substituting the value, we get,
Sum = (1/2) * ((n * (n + 1) * (2*n + 1) / 6) + (n * ( n + 1) / 2))
= n * (n + 1)/2 [(2n + 1)/6 + 1/2]
= n * (n + 1) * (n + 2) / 6
Below is the implementation of the above approach:
C++
#include <iostream>
using namespace std;
int seriesSum( int n)
{
return (n * (n + 1) * (n + 2)) / 6;
}
int main()
{
int n = 4;
cout << seriesSum(n);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static int seriesSum( int n)
{
return (n * (n + 1 ) * (n + 2 )) / 6 ;
}
public static void main (String[] args) {
int n = 4 ;
System.out.println( seriesSum(n));
}
}
|
Python3
def seriesSum(n):
return int ((n * (n + 1 ) * (n + 2 )) / 6 )
n = 4
print (seriesSum(n))
|
C#
using System;
class GFG {
static int seriesSum( int n)
{
return (n * (n + 1) * (n + 2)) / 6;
}
public static void Main()
{
int n = 4;
Console.WriteLine(seriesSum(n));
}
}
|
PHP
<?php
function seriesSum( $n )
{
return ( $n * ( $n + 1) *
( $n + 2)) / 6;
}
$n = 4;
echo (seriesSum( $n ));
?>
|
Javascript
<script>
function seriesSum(n)
{
return (n * (n + 1) * (n + 2)) / 6;
}
var n = 4;
document.write( seriesSum(n));
</script>
|
Time Complexity: O(1), as constant operations are being performed.
Auxiliary Space: O(1), as constant extra space is required.
Please Login to comment...