Summing the sum series - GeeksforGeeks

15 Apr, 2021
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.  
 
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++
Java
Python3
C#
PHP
Javascript
// C++ program to calculate the // terms of summing of sum series #include <iostream> using namespace std;# define MOD 1000000007 // Function to calculate// twice of sum of first N natural numberslong sum(long N){         long val = N * (N+1);    val = val % MOD;         return val;} // Function to calculate the// terms of summing of sum seriesint 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 Codeint main(){    int N = 1, M = 2, K = 3;    cout << sumX(N, M, K) << endl;        return 0;} // This code is contributed by Rituraj Jain
// 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 program to calculate the # terms of summing of sum series   MOD = 1000000007   # Function to calculate# twice of sum of first N natural numbersdef 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 seriesdef 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# 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// PHP program to calculate the// terms of summing of sum series // Function to calculate twice of// sum of first N natural numbersfunction sum($N){    $MOD = 1000000007;    $val = $N * ($N + 1);    $val = $val % $MOD;         return $val;} // Function to calculate the terms// of summing of sum seriesfunction sumX($N, $M, $K){    $MOD = 1000000007;    for ($i = 0; $i < $M; $i++)    {        $N = sum($K + $N);    }         $N = $N % $MOD;    return $N;} // Driver Code$N = 1;$M = 2;$K = 3;echo (sumX($N, $M, $K));     // This code is contributed// by Shivi_Aggarwal?>
<script> // Javascript program to calculate the// terms of summing of sum series // Function to calculate twice of// sum of first N natural numbersfunction sum(N){    let MOD = 1000000007;    let val = N * (N + 1);    val = val % MOD;         return val;} // Function to calculate the terms// of summing of sum seriesfunction sumX(N, M, K){    let MOD = 1000000007;    for (let i = 0; i < M; i++)    {        N = sum(K + N);    }         N = N % MOD;    return N;} // Driver Codelet N = 1;let M = 2;let K = 3;document.write (sumX(N, M, K));     // This code is contributed// by Sravan </script>
552
 
rituraj_jain
vt_m
Shivi_Aggarwal
sravankumar8128
series
series-sum
Mathematical
Technical Scripter
Mathematical
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program to print prime numbers from 1 to N.
Segment Tree | Set 1 (Sum of given range)
Modular multiplicative inverse
Count all possible paths from top left to bottom right of a mXn matrix
Fizz Buzz Implementation
Check if a number is Palindrome
Program to multiply two matrices
Merge two sorted arrays with O(1) extra space
Generate all permutation of a set in Python
Count ways to reach the n'th stair