Given an array of positive integers. Replace every element by the product of all other elements of the array.
Examples:
Input : arr[] = { 2, 3, 3, 5, 7 }
Output : 315 210 210 126 90
Approach :
- First, take the product of all the element of the array.
- Now replace each element by the product divided by that element.
- Print the modified array.
Below is the implementation of above approach:
C++
#include "iostream"
using namespace std;
void ReplaceElements( int arr[], int n)
{
int prod = 1;
for ( int i = 0; i < n; ++i) {
prod *= arr[i];
}
for ( int i = 0; i < n; ++i) {
arr[i] = prod / arr[i];
}
}
int main()
{
int arr[] = { 2, 3, 3, 5, 7 };
int n = sizeof (arr) / sizeof (arr[0]);
ReplaceElements(arr, n);
for ( int i = 0; i < n; ++i) {
cout << arr[i] << " " ;
}
return 0;
}
|
Java
class GFG{
static void ReplaceElements( int arr[], int n)
{
int prod = 1 ;
for ( int i = 0 ; i < n; ++i) {
prod *= arr[i];
}
for ( int i = 0 ; i < n; ++i) {
arr[i] = prod / arr[i];
}
}
public static void main(String[] args)
{
int arr[] = { 2 , 3 , 3 , 5 , 7 };
int n = arr.length;
ReplaceElements(arr, n);
for ( int i = 0 ; i < n; ++i) {
System.out.print(arr[i]+ " " );
}
System.out.println( "" );
}
}
|
Python 3
def ReplaceElements(arr, n):
prod = 1
for i in range (n):
prod * = arr[i]
for i in range (n) :
arr[i] = prod / / arr[i]
if __name__ = = "__main__" :
arr = [ 2 , 3 , 3 , 5 , 7 ]
n = len (arr)
ReplaceElements(arr, n)
for i in range ( n):
print (arr[i], end = " " )
|
C#
using System;
class GFG
{
static void ReplaceElements( int []arr, int n)
{
int prod = 1;
for ( int i = 0; i < n; ++i)
{
prod *= arr[i];
}
for ( int i = 0; i < n; ++i)
{
arr[i] = prod / arr[i];
}
}
static public void Main ()
{
int []arr = { 2, 3, 3, 5, 7 };
int n = arr.Length;
ReplaceElements(arr, n);
for ( int i = 0; i < n; ++i)
{
Console.Write(arr[i]+ " " );
}
Console.WriteLine( "" );
}
}
|
PHP
<?php
function ReplaceElements( $arr , $n )
{
$prod = 1;
for ( $i = 0; $i < $n ; ++ $i )
{
$prod *= $arr [ $i ];
}
for ( $i = 0; $i < $n ; ++ $i )
{
$arr [ $i ] = (int)( $prod / $arr [ $i ]);
}
return $arr ;
}
$arr = array ( 2, 3, 3, 5, 7 );
$n = sizeof( $arr );
$arr1 = ReplaceElements( $arr , $n );
for ( $i = 0; $i < $n ; ++ $i )
{
echo $arr1 [ $i ] . " " ;
}
?>
|
Javascript
<script>
function ReplaceElements(arr, n)
{
let prod = 1;
for (let i = 0; i < n; ++i)
{
prod *= arr[i];
}
for (let i = 0; i < n; ++i)
{
arr[i] = parseInt(prod / arr[i], 10);
}
}
let arr = [ 2, 3, 3, 5, 7 ];
let n = arr.length;
ReplaceElements(arr, n);
for (let i = 0; i < n; ++i)
{
document.write(arr[i]+ " " );
}
</script>
|
Complexity Analysis:
- Time Complexity: O(N)
- Auxiliary Space: O(1)