Sum of series 1*1! + 2*2! + ……..+ n*n!

Given n, we need to find sum of 1*1! + 2*2! + ……..+ n*n!
Examples:
Input: 1
Output: 1
Input: 3
Output: 23
1 * 1! + 2 * 2! + 3 * 3! = 1 + 4 + 18 = 23
We may assume that overflow does not happen.
A simple solution is to compute terms one by one and add to result.
An efficient solution is based on direct formula (n + 1)! – 1
How does this formula work?
We basically need to compute below sum.
?(i * i!) Where i varies from 1 to n
= ?((i + 1 – 1) * i!)
= ?((i+1) * i!) – ?i!
= ?(i + 1)! – ?(i!)
?(i + 1)! = 2! + 3! + … (n+1)! where 1 <= i <= n —–(1)
?(i!) = 1! + 2! + 3! + … (n)! where 1 <= i <= n —–(2)
Subtracting second from first, we get (n+1)! – 1
C++
// CPP program to find sum of the series.#include <bits/stdc++.h>using namespace std;int factorial(int n){ int res = 1; for (int i = 2; i <= n; i++) res = res * i; return res;}// Function to calculate required seriesint calculateSeries(int n){ return factorial(n + 1) - 1;}// Drivers codeint main(){ int n = 3; cout << calculateSeries(n); return 0;} |
Java
// Java program to find sum of // the series.import java.io.*;class GFG { static int factorial(int n) { int res = 1; for (int i = 2; i <= n; i++) res = res * i; return res; } // Function to calculate required // series static int calculateSeries(int n) { return factorial(n + 1) - 1; } // Drivers code public static void main (String[] args) { int n = 3; System.out.println( calculateSeries(n)); }}// This code is contributed by anuj_67. |
Python3
# Python program to find sum of # the series.def factorial(n): res = 1 for i in range(2, n+1): res = res * i return res# Function to calculate required# seriesdef calculateSeries(n): return factorial(n + 1) - 1# Drivers coden = 3print(calculateSeries(n))# This code is contributed by # Ansu Kumari. |
C#
// C# program to find // sum of the series.using System;class GFG{ static int factorial(int n) { int res = 1; for (int i = 2; i <= n; i++) res = res * i; return res; } // Function to calculate // required series static int calculateSeries(int n) { return factorial(n + 1) - 1; } // Driver code static public void Main () { int n = 3; Console.WriteLine( calculateSeries(n)); }}// This code is contributed by ajit. |
PHP
<?php// PHP program to find// sum of the series.function factorial($n){ $res = 1; for ($i = 2; $i <= $n; $i++) $res = $res * $i; return $res;}// Function to calculate// required seriesfunction calculateSeries($n){ return factorial($n + 1) - 1;}// Driver code$n = 3;echo calculateSeries($n);// This code is contributed // by akt_mit?> |
Javascript
<script>// java script program to find// sum of the series.function factorial(n){ let res = 1; for (let i = 2; i <= n; i++) res = res * i; return res;}// Function to calculate// required seriesfunction calculateSeries(n){ return factorial(n + 1) - 1;}// Driver codelet n = 3;document.write( calculateSeries(n));// This code is contributed // by sravan kumar</script> |
Output:
23
Time Complexity : O(n).
Auxiliary Space: O(1)
Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



