Sum or Product

Posted: 3 Dec, 2020
Difficulty: Easy

PROBLEM STATEMENT

Try Problem

You are given a number ‘N’ and a query ‘Q.’ If ‘Q’ is 1, then you have to return the sum of all integers from 1 to ‘N,’ else if ‘Q’ is equal to 2 then you have to return the product of all integers from 1 to ‘N.’ Since the product can be very large, return it modulo 10 ^ 9 + 7.

For example

Given ‘N’ = 4, ‘Q’ = 1. 
Then the answer is 10 because the sum of all integers between 1 and 4 are 1, 2, 3, and 4. Hence 1 + 2 + 3 + 4 is equal to 10.
Input format:
The first line of input contains an integer ‘T’ denoting the number of test cases.

Next, ‘T’ lines contain two space-separated integers ‘N’, where ‘N’ is the number given and ‘Q’, denoting the type of query.
Output Format :
For each test case, You are supposed to return an integer denoting the sum or product of ‘N’ numbers.
Note:
You are not required to print the expected output; it has already been taken care of. Just implement the function.
Constraints:
1 <= ‘T’ <= 10
1 <= ‘N’ <= 5000
1 <= ‘Q’ <= 2

Time Limit: 1 sec.
Approach 1

The idea is to loop for the given ‘N’ according to the query ‘Q.’ It can be easily seen that sum of the first ‘N’ integers is represented by (‘N’ * ‘N + 1’) / 2. But for the product, we will have to loop from 1 to N.

 

The steps are as follows:

  • Maintain a variable ‘answer’ that stores the final result.
  • If ‘Q’ is 1:
    • ‘answer’ = (‘N’ * ‘N + 1’) / 2
  • Else:
    • Loop from 1 to ‘N’ using ‘i’.
    • For each iteration, multiply ‘i’ to ‘answer.’
  • Return ‘answer’ as the final answer.
Try Problem