# Prefix Factorials of a Prefix Sum Array

Given an array arr[] consisting of N positive integers, the task is to find the prefix factorials of a prefix sum array of the given array i.e., .Examples:Input: arr[] = {1, 2, 3, 4}Output: 1 6 720 3628800Explanation:The prefix sum of the given array is {1, 3, 6, 10}. Therefore, prefix factorials of the obtained prefix sum array is {1!, (1+2)!, (1+2+3)!, (1+2+3+4)!} = {1!, 3!, 6!, 10!} = {1 6 720 3628800}.Input: arr[] = {2, 4, 3, 1}Output: 2 720 362880 3628800 Naive Approach: The simplest approach to solve the given problem is to find the prefix sum of the given array and then find the factorial of each array element in the prefix sum array. After calculating the prefix sum print the factorial array.Below is the implementation of the above approach.C++#include using namespace std;int fact(int N){ if (N == 1 || N == 0) return 1; return N * fact(N – 1);}void prefixFactorialArray(int arr, int N){ for (int i = 1; i < N; i++) { arr[i] += arr[i - 1]; } for (int i = 0; i < N; i++) { arr[i] = fact(arr[i]); } for (int i = 0; i < N; i++) { cout