Given two integers **a** and **b**, the task is to check whether the product of integers from the rage v[a, b] i.e. **a * (a + 1) * (a + 2) * … * b** is positive, negative or zero.

**Examples:**

Input:a = -10, b = -2

Output:Negative

Input:a = -10, b = 2

Output:Zero

**Naive approach:** We can run a loop from **a** to **b** and multiply all the numbers starting from **a** to **b** and check whether the product is positive negative or zero. This solution will fail for large values of **a** and **b** and will result in overflow.

**Efficient approach:** There are three possible case:

- If
**a > 0**and**b > 0**then the resultant product will be positive. - If
**a < 0**and**b > 0**then the result will be zero as**a * (a + 1) * … * 0 * … (b – 1) * b = 0**. - If
**a < 0**and**b < 0**then the result will depend on the count of numbers (as all the numbers are negative)- If the count of negative numbers is even then the result will be positive.
- Else the result will be negative.

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach ` `#include <iostream> ` `using` `namespace` `std; ` ` ` `// Function to check whether the product ` `// of integers of the range [a, b] ` `// is positive, negative or zero ` `void` `solve(` `long` `long` `int` `a, ` `long` `long` `int` `b) ` `{ ` ` ` ` ` `// If both a and b are positive then ` ` ` `// the product will be positive ` ` ` `if` `(a > 0 && b > 0) { ` ` ` `cout << ` `"Positive"` `; ` ` ` `} ` ` ` ` ` `// If a is negative and b is positive then ` ` ` `// the product will be zero ` ` ` `else` `if` `(a <= 0 && b >= 0) { ` ` ` `cout << ` `"Zero"` `<< endl; ` ` ` `} ` ` ` ` ` `// If both a and b are negative then ` ` ` `// we have to find the count of integers ` ` ` `// in the range ` ` ` `else` `{ ` ` ` ` ` `// Total integers in the range ` ` ` `long` `long` `int` `n = ` `abs` `(a - b) + 1; ` ` ` ` ` `// If n is even then the resultant ` ` ` `// product is positive ` ` ` `if` `(n % 2 == 0) { ` ` ` `cout << ` `"Positive"` `<< endl; ` ` ` `} ` ` ` `// If n is odd then the resultant ` ` ` `// product is negative ` ` ` `else` `{ ` ` ` `cout << ` `"Negative"` `<< endl; ` ` ` `} ` ` ` `} ` `} ` ` ` `// Driver code ` `int` `main() ` `{ ` ` ` `int` `a = -10, b = -2; ` ` ` ` ` `solve(a, b); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation of the approach ` `import` `java.io.*; ` ` ` `class` `GFG ` `{ ` ` ` `// Function to check whether the product ` `// of integers of the range [a, b] ` `// is positive, negative or zero ` `static` `void` `solve(` `long` `a, ` `long` `b) ` `{ ` ` ` ` ` `// If both a and b are positive then ` ` ` `// the product will be positive ` ` ` `if` `(a > ` `0` `&& b > ` `0` `) ` ` ` `{ ` ` ` `System.out.println( ` `"Positive"` `); ` ` ` `} ` ` ` ` ` `// If a is negative and b is positive then ` ` ` `// the product will be zero ` ` ` `else` `if` `(a <= ` `0` `&& b >= ` `0` `) ` ` ` `{ ` ` ` `System.out.println( ` `"Zero"` `); ` ` ` `} ` ` ` ` ` `// If both a and b are negative then ` ` ` `// we have to find the count of integers ` ` ` `// in the range ` ` ` `else` ` ` `{ ` ` ` ` ` `// Total integers in the range ` ` ` `long` `n = Math.abs(a - b) + ` `1` `; ` ` ` ` ` `// If n is even then the resultant ` ` ` `// product is positive ` ` ` `if` `(n % ` `2` `== ` `0` `) ` ` ` `{ ` ` ` `System.out.println( ` `"Positive"` `); ` ` ` `} ` ` ` ` ` `// If n is odd then the resultant ` ` ` `// product is negative ` ` ` `else` ` ` `{ ` ` ` `System.out.println( ` `"Negative"` `); ` ` ` `} ` ` ` `} ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `main (String[] args) ` ` ` `{ ` ` ` `int` `a = -` `10` `, b = -` `2` `; ` ` ` ` ` `solve(a, b); ` ` ` `} ` `} ` ` ` `// This code is contributed by anuj_67.. ` |

*chevron_right*

*filter_none*

## Python3

`# Python 3 implementation of the approach ` ` ` `# Function to check whether the product ` `# of integers of the range [a, b] ` `# is positive, negative or zero ` `def` `solve(a,b): ` ` ` ` ` `# If both a and b are positive then ` ` ` `# the product will be positive ` ` ` `if` `(a > ` `0` `and` `b > ` `0` `): ` ` ` `print` `(` `"Positive"` `) ` ` ` ` ` `# If a is negative and b is positive then ` ` ` `# the product will be zero ` ` ` `elif` `(a <` `=` `0` `and` `b >` `=` `0` `): ` ` ` `print` `(` `"Zero"` `) ` ` ` ` ` `# If both a and b are negative then ` ` ` `# we have to find the count of integers ` ` ` `# in the range ` ` ` `else` `: ` ` ` ` ` `# Total integers in the range ` ` ` `n ` `=` `abs` `(a ` `-` `b) ` `+` `1` ` ` ` ` `# If n is even then the resultant ` ` ` `# product is positive ` ` ` `if` `(n ` `%` `2` `=` `=` `0` `): ` ` ` `print` `(` `"Positive"` `) ` ` ` ` ` `# If n is odd then the resultant ` ` ` `# product is negative ` ` ` `else` `: ` ` ` `print` `(` `"Negative"` `) ` ` ` `# Driver code ` `if` `__name__ ` `=` `=` `'__main__'` `: ` ` ` `a ` `=` `-` `10` ` ` `b ` `=` `-` `2` ` ` ` ` `solve(a, b) ` ` ` `# This code is contributed by ` `# Surendra_Gangwar ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation of the approach ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to check whether the product ` ` ` `// of integers of the range [a, b] ` ` ` `// is positive, negative or zero ` ` ` `static` `void` `solve(` `long` `a, ` `long` `b) ` ` ` `{ ` ` ` ` ` `// If both a and b are positive then ` ` ` `// the product will be positive ` ` ` `if` `(a > 0 && b > 0) ` ` ` `{ ` ` ` `Console.WriteLine( ` `"Positive"` `); ` ` ` `} ` ` ` ` ` `// If a is negative and b is positive then ` ` ` `// the product will be zero ` ` ` `else` `if` `(a <= 0 && b >= 0) ` ` ` `{ ` ` ` `Console.WriteLine( ` `"Zero"` `); ` ` ` `} ` ` ` ` ` `// If both a and b are negative then ` ` ` `// we have to find the count of integers ` ` ` `// in the range ` ` ` `else` ` ` `{ ` ` ` ` ` `// Total integers in the range ` ` ` `long` `n = Math.Abs(a - b) + 1; ` ` ` ` ` `// If n is even then the resultant ` ` ` `// product is positive ` ` ` `if` `(n % 2 == 0) ` ` ` `{ ` ` ` `Console.WriteLine( ` `"Positive"` `); ` ` ` `} ` ` ` ` ` `// If n is odd then the resultant ` ` ` `// product is negative ` ` ` `else` ` ` `{ ` ` ` `Console.WriteLine( ` `"Negative"` `); ` ` ` `} ` ` ` `} ` ` ` `} ` ` ` ` ` `// Driver code ` ` ` `public` `static` `void` `Main () ` ` ` `{ ` ` ` `int` `a = -10, b = -2; ` ` ` ` ` `solve(a, b); ` ` ` `} ` `} ` ` ` `// This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

**Output:**

Negative