Given an array A[] of size N. Solve Q queries. Find the product in the range [L, R] under modulo P ( P is Prime).
Examples:
Input : A[] = {1, 2, 3, 4, 5, 6} L = 2, R = 5, P = 229 Output : 120 Input : A[] = {1, 2, 3, 4, 5, 6}, L = 2, R = 5, P = 113 Output : 7
Brute Force
For each of the queries, traverse each element in the range [L, R] and calculate the product under modulo P. This will answer each query in O(N).
PHP
<?php // Product in range Queries in O(N) // Function to calculate // Product in the given range. function calculateProduct( $A , $L ,
$R , $P )
{ // As our array is 0 based as
// and L and R are given as 1
// based index.
$L = $L - 1;
$R = $R - 1;
$ans = 1;
for ( $i = $L ; $i <= $R ; $i ++)
{
$ans = $ans * $A [ $i ];
$ans = $ans % $P ;
}
return $ans ;
} // Driver code $A = array ( 1, 2, 3, 4, 5, 6 );
$P = 229;
$L = 2; $R = 5;
echo calculateProduct( $A , $L , $R , $P ),"
" ; $L = 1; $R = 3;
echo calculateProduct( $A , $L , $R , $P ),"
" ; // This code is contributed by ajit. ?> |
Output :
120 6
Please refer complete article on Products of ranges in an array for more details!