Related Articles
Check whether product of integers from a to b is positive , negative or zero
• Last Updated : 22 Apr, 2021

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:

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++

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

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

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

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

## Javascript

 ``
Output:
`Negative`

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live and Geeks Classes Live USA

My Personal Notes arrow_drop_up