Range Product Queries of Powers
To solve this problem, we need to first generate the powers
array for the given integer n
. We can do this by taking the binary representation of n
, which will contain a series of 0s and 1s. We can add (2^i) to the powers
array for each bit in position i
that is set to 1.
Once we have the powers
array, we can calculate the result for each query by multiplying the values from the left
to the right
indices given in the query.
Here’s the Python code:


The code first constructs the powers
array by examining the binary representation of n
. Then, it iterates through the queries, multiplying the values from the left
to the right
index for each query, and adding the result to the results
array.
This solution takes into account the constraints and returns the answer modulo (10^9 + 7) as required.