Sum of the series 1, 3, 6, 10... (Triangular Numbers)

Last Updated : 16 Aug, 2022

Given n, no of elements in the series, find the summation of the series 1, 3, 6, 10....n. The series mainly represents triangular numbers.
Examples: 
 

Input: 2
Output: 4
Explanation: 1 + 3 = 4

Input: 4
Output: 20
Explanation: 1 + 3 + 6 + 10 = 20


 


A simple solution is to one by one add triangular numbers. 
 

C++
/* CPP program to find sum
 series 1, 3, 6, 10, 15, 21...
and then find its sum*/
#include <iostream>
using namespace std;

// Function to find the sum of series
int seriesSum(int n)
{
    int sum = 0;
    for (int i=1; i<=n; i++)
       sum += i*(i+1)/2;
    return sum;
}

// Driver code
int main()
{
    int n = 4;
    cout << seriesSum(n);
    return 0;
}
Java
// Java program to find sum
// series 1, 3, 6, 10, 15, 21...
// and then find its sum*/
import java.io.*;

class GFG {
        
    // Function to find the sum of series
    static int seriesSum(int n)
    {
        int sum = 0;
        for (int i = 1; i <= n; i++)
        sum += i * (i + 1) / 2;
        return sum;
    }

    // Driver code
    public static void main (String[] args) 
    {
        int n = 4;
        System.out.println(seriesSum(n));
        
    }
}

// This article is contributed by vt_m
Python3
# Python3 program to find sum
# series 1, 3, 6, 10, 15, 21...
# and then find its sum.

# Function to find the sum of series
def seriessum(n):
    
    sum = 0
    for i in range(1, n + 1):
        sum += i * (i + 1) / 2
    return sum
    
# Driver code
n = 4
print(seriessum(n))

# This code is Contributed by Azkia Anam.
C#
// C# program to find sum
// series 1, 3, 6, 10, 15, 21...
// and then find its sum*/
using System;

class GFG {

    // Function to find the sum of series
    static int seriesSum(int n)
    {
        int sum = 0;
        
        for (int i = 1; i <= n; i++)
            sum += i * (i + 1) / 2;
            
        return sum;
    }

    // Driver code
    public static void Main()
    {
        int n = 4;
        
        Console.WriteLine(seriesSum(n));
    }
}

// 
PHP
<?php
// PHP program to find sum
// series 1, 3, 6, 10, 15, 21...
// and then find its sum

// Function to find 
// the sum of series
function seriesSum($n)
{
    $sum = 0;
    for ($i = 1; $i <= $n; $i++)
        $sum += $i * ($i + 1) / 2;
    return $sum;
}

// Driver code
$n = 4;
echo(seriesSum($n));

// This code is contributed by Ajit.
?>
JavaScript
<script>
// javascript program to find sum
// series 1, 3, 6, 10, 15, 21...
// and then find its sum

// Function to find the sum of series
function seriesSum(n)
{
    let sum = 0;
    for (let i = 1; i <= n; i++)
       sum += i * ((i + 1) / 2);
    return sum;
}

// Driver code
let n = 4;
  document.write(seriesSum(n)) ;

// This code is contributed by aashish1995 

</script>

Output: 
 

20


Time complexity : O(n)

Auxiliary Space: O(1) since using constant variables


An efficient solution is to use direct formula n(n+1)(n+2)/6
 

Let g(i) be i-th triangular number.
g(1) = 1
g(2) = 3
g(3) = 6
g(n) = n(n+1)/2


 

Let f(n) be the sum of the triangular
numbers 1 through n.
f(n) = g(1) + g(2) + ... + g(n)

Then:
f(n) = n(n+1)(n+2)/6


How can we prove this? We can prove it by induction. That is, prove two things : 
 

  1. It's true for some n (n = 1, in this case).
  2. If it's true for n, then it's true for n+1.


This allows us to conclude that it's true for all n >= 1.
 

Now 1) is easy. We know that f(1) = g(1) 
= 1. So it's true for n = 1.

Now for 2). Suppose it's true for n. 
Consider f(n+1). We have:
f(n+1) = g(1) + g(2) + ... + g(n) + g(n+1) 
       = f(n) + g(n+1)

Using our assumption f(n) = n(n+1)(n+2)/6 
and g(n+1) = (n+1)(n+2)/2, we have:
f(n+1) = n(n+1)(n+2)/6 + (n+1)(n+2)/2
       = n(n+1)(n+2)/6 + 3(n+1)(n+2)/6
       = (n+1)(n+2)(n+3)/6
Therefore, f(n) = n(n+1)(n+2)/6


Below is the implementation of the above approach: 
 

C++
/* CPP program to find sum
 series 1, 3, 6, 10, 15, 21...
and then find its sum*/
#include <iostream>
using namespace std;

// Function to find the sum of series
int seriesSum(int n)
{
    return (n * (n + 1) * (n + 2)) / 6; 
}

// Driver code
int main()
{
    int n = 4;
    cout << seriesSum(n);
    return 0;
}
Java
// java program to find sum
// series 1, 3, 6, 10, 15, 21...
// and then find its sum
import java.io.*;

class GFG 
{
    // Function to find the sum of series
    static int seriesSum(int n)
    {
        return (n * (n + 1) * (n + 2)) / 6; 
    }

   // Driver code
    public static void main (String[] args) {
        
        int n = 4;
        System.out.println( seriesSum(n));
        
    }
}

// This article is contributed by vt_m
Python3
# Python 3 program to find sum
# series 1, 3, 6, 10, 15, 21...
# and then find its sum*/

# Function to find the sum of series
def seriesSum(n):

    return int((n * (n + 1) * (n + 2)) / 6)


# Driver code
n = 4
print(seriesSum(n))

# This code is contributed by Smitha.
C#
// C# program to find sum
// series 1, 3, 6, 10, 15, 21...
// and then find its sum
using System;

class GFG {
    
    // Function to find the sum of series
    static int seriesSum(int n)
    {
        return (n * (n + 1) * (n + 2)) / 6;
    }

    // Driver code
    public static void Main()
    {

        int n = 4;
        
        Console.WriteLine(seriesSum(n));
    }
}

// This code is contributed by vt_m.
PHP
<?php
// PHP program to find sum
// series 1, 3, 6, 10, 15, 21...
// and then find its sum

// Function to find 
// the sum of series
function seriesSum($n)
{
    return ($n * ($n + 1) * 
           ($n + 2)) / 6; 
}

// Driver code
$n = 4;
echo(seriesSum($n));

// This code is contributed by Ajit.
?>
JavaScript
<script>
/* javascript program to find sum
 series 1, 3, 6, 10, 15, 21...
and then find its sum*/


// Function to find the sum of series
function seriesSum( n)
{
    return (n * (n + 1) * (n + 2)) / 6; 
}

// Driver code
    let n = 4;
    document.write(seriesSum(n));

// This code is contributed by todaysgaurav 

</script>

Output: 
 

20


Time complexity : O(1)
Auxiliary Space: O(1), since no extra space has been taken.

Comment