Skip to content
Related Articles

Related Articles

Python | Superfactorial of a number.

View Discussion
Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 03 Oct, 2019

Given a number, the task is to find the Superfactorial of a number. The result of multiplying the product of first n factorials is called Superfactorial of a number.

Superfactorial(n)= 1 ^ n * 2 ^ (n-1) * 3 ^ (n-2) * . . . . . * n ^ 1

Examples:

Input : 3
Output : 12
H(3) = 1! * 2! * 3! = 12

Input : 4
Output : 288
H(4) = 1^4 * 2^3 * 3^2 * 4^1 = 288

An efficient approach is to compute all factorial iteratively till n, then compute the product of all factorial till n.




# Python3 program to find the
# Superfactorial of a number
  
# function to calculate the
# value of Superfactorial 
def superfactorial(n):
  
    # initialise the
    # val to 1
    val = 1
    ans = []
    for i in range(1, n + 1):
        val = val * i
        ans.append(val)
    # ans is the list with
    # all factorial till n.
    arr = [1]
    for i in range(1, len(ans)):
        arr.append((arr[-1]*ans[i]))
  
    return arr
  
# Driver Code
n = 5
arr = superfactorial(n)
print(arr[-1])


Output:

34560

Time-complexity:O(N)
Since super-factorials of number can be huge, hence the numbers will overflow. We can use boost libraries in C++ or BigInteger in Java to store the super-factorial of a number N.

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!