Summing the sum series

Defined a function that calculates the twice of sum of first N natural numbers as sum(N). Your task is to modify the function to sumX(N, M, K) that calculates sum( K + sum( K + sum( K + …sum(K + N)…))), continuing for M terms. For a given N, M and K calculate the value of sumX(N, M, K).
Note: Since the answer can be very large, print the answer in modulo 10^9 + 7.

Examples:

Input: N = 1, M = 2, K = 3
Output: 552
For M = 2
sum(3 + sum(3 + 1)) = sum(3 + 20) = 552.

Input: N = 3, M =3, K = 2
Output: 1120422
For M = 3
sum(2 + sum(2 + sum(2 + 3))) = sum(2 + sum(2 + 30)) = sum(2 + 1056) = 1120422.

Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

Approach:

• Calculate value of sum(N) using the formula N*(N + 1).
• Run a loop M times, each time adding K to the previous answer and applying sum(prev_ans + K), modulo 10^9 + 7 each time.
• Print the value of sumX(N, M, K) in the end.

Below is the implementation of the above approach:

C++

 // C++ program to calculate the   // terms of summing of sum series    #include    using namespace std; # define MOD 1000000007    // Function to calculate  // twice of sum of first N natural numbers long sum(long N){            long val = N * (N+1);     val = val % MOD;            return val; }    // Function to calculate the  // terms of summing of sum series int sumX(int N, int M, int K){            for (int i = 0; i < M; i++) {          N = (int)sum(K + N);      }             N = N % MOD;      return N; }    // Driver Code int main() {     int N = 1, M = 2, K = 3;     cout << sumX(N, M, K) << endl;            return 0; }    // This code is contributed by Rituraj Jain

Java

 // Java program to calculate the  // terms of summing of sum series    import java.io.*; import java.util.*; import java.lang.*;    class GFG {        static int MOD = 1000000007;        // Function to calculate     // twice of sum of first N natural numbers     static long sum(long N)     {         long val = N * (N + 1);            // taking modulo 10 ^ 9 + 7         val = val % MOD;            return val;     }        // Function to calculate the     // terms of summing of sum series     static int sumX(int N, int M, int K)     {         for (int i = 0; i < M; i++) {             N = (int)sum(K + N);         }         N = N % MOD;         return N;     }        // Driver code     public static void main(String args[])     {         int N = 1, M = 2, K = 3;         System.out.println(sumX(N, M, K));     } }

Python3

 # Python3 program to calculate the   # terms of summing of sum series       MOD = 1000000007       # Function to calculate  # twice of sum of first N natural numbers  def Sum(N):              val = N * (N + 1)           # taking modulo 10 ^ 9 + 7      val = val % MOD           return val       # Function to calculate the  # terms of summing of sum series  def sumX(N, M, K):              for i in range(M):         N = int(Sum(K + N))                  N = N % MOD      return N       if __name__ == "__main__":             N, M, K = 1, 2, 3     print(sumX(N, M, K))     # This code is contributed by Rituraj Jain

C#

 // C# program to calculate the  // terms of summing of sum series    using System; class GFG {        static int MOD = 1000000007;        // Function to calculate     // twice of sum of first N natural numbers     static long sum(long N)     {         long val = N * (N + 1);            // taking modulo 10 ^ 9 + 7         val = val % MOD;            return val;     }        // Function to calculate the     // terms of summing of sum series     static int sumX(int N, int M, int K)     {         for (int i = 0; i < M; i++) {             N = (int)sum(K + N);         }         N = N % MOD;         return N;     }        // Driver code     public static void Main()     {         int N = 1, M = 2, K = 3;         Console.WriteLine(sumX(N, M, K));     } }    // This code is contributed by anuj_67..

PHP



Output:

552

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.