# Check whether product of integers from a to b is positive , negative or zero

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

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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:

1. If a > 0 and b > 0 then the resultant product will be positive.
2. If a < 0 and b > 0 then the result will be zero as a * (a + 1) * … * 0 * … (b – 1) * b = 0.
3. 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++ implementation of the approach ` `#include ` `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; ` `} `

 `// 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.. `

 `# 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 `

 `// 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 `

Output:
```Negative
```

Third year Department of Information Technology Jadavpur University

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : vt_m, SURENDRA_GANGWAR, AnkitRai01

Article Tags :
Practice Tags :