Check for integer overflow on multiplication

25 Jun, 2021
Given two integer a and b, find whether their product (a x b) exceed the signed 64 bit integer or not. If it exceed print Yes else print No. Examples:  
Input : a = 100, b = 200 
Output : No

Input : a = 10000000000,
        b = -10000000000
Output : Yes
 
Approach :  
If either of the number is 0, then it will never exceed the range.Else if the product of the two divided by one equals the other, then also it will be in range.In any other case overflow will occur.
If either of the number is 0, then it will never exceed the range.
Else if the product of the two divided by one equals the other, then also it will be in range.
In any other case overflow will occur.
 
C++
Java
Python3
C#
PHP
Javascript
// CPP program to check for integer// overflow on multiplication#include <iostream>using namespace std; // Function to check whether there is// overflow in a * b or not. It returns// true if there is overflow.bool isOverflow(long long a, long long b){    // Check if either of them is zero    if (a == 0 || b == 0)        return false;         long long result = a * b;    if (a == result / b)        return false;    else        return true;} // Driver codeint main(){    long long a = 10000000000, b = -10000000000;    if (isOverflow(a, b))        cout << "Yes";    else        cout << "No";    return 0;}
// Java program to check for integer// overflow on multiplicationimport java.util.*;import java.lang.*; public class GfG{         // Function to check whether there is    // overflow in a * b or not. It    // returns true if there is overflow.    static Boolean isOverflow( long a, long b)    {        // Check if either of them is zero        if (a == 0 || b == 0)            return false;             long result = a * b;        if (a == result / b)            return false;        else            return true;    }         // driver function    public static void main(String argc[])    {        long a = Long.parseLong("10000000000");        long b = Long.parseLong("-10000000000");                 if (isOverflow(a, b))        System.out.print("Yes");    else        System.out.print("No");    }} // This code is contributed by Prerna Saini
# Python program to check for integer# overflow on multiplication # Function to check whether there is# overflow in a * b or not. It returns# true if there is overflow.def isOverflow(a, b):     # Check if either of them is zero    if (a == 0 or b == 0) :        return False     result = a * b    if (result >= 9223372036854775807 or        result <= -9223372036854775808):        result=0    if (a == (result // b)):        print(result // b)        return False    else:        return True # Driver codeif __name__ =="__main__":    a = 10000000000    b = -10000000000    if (isOverflow(a, b)):        print( "Yes")    else:        print( "No")         # This code is contributed# Shubham Singh(SHUBHAMSINGH10)
// C# program to check for integer// overflow on multiplicationusing System; public class GfG{         // Function to check whether there is    // overflow in a * b or not. It    // returns true if there is overflow.    static bool isOverflow( long a, long b)    {        // Check if either of them is zero        if (a == 0 || b == 0)            return false;             long result = a * b;        if (a == result / b)            return false;        else            return true;    }         // Driver function    public static void Main()    {        long a = 10000000000;        long b = -10000000000 ;                 if (isOverflow(a, b))            Console.WriteLine("Yes");        else            Console.WriteLine("No");    }} // This code is contributed by vt_m
<?php// PHP program to check for integer// overflow on multiplication // Function to check whether there is// overflow in a * b or not. It returns// true if there is overflow.function isOverflow($a, $b){    // Check if either of them is zero    if ($a == 0 || $b == 0)        return false;         $result = $a * $b;    if ($a == (int)$result / $b)        return false;    else        return true;} // Driver code$a = 10000000000;$b = -10000000000;if (isOverflow($a, $b))    echo "Yes";else    echo "No"; // This code is contributed by ajit.?>
<script> // JavaScript program to check for integer// overflow on multiplication // Function to check whether there is// overflow in a * b or not. It returns// true if there is overflow.function isOverflow(a, b){    // Check if either of them is zero    if (a == 0 || b == 0)        return false;         var result = a*b;    if (result >= 9223372036854775807 ||        result <= -9223372036854775808)        result=0    if (a == parseInt(result / b))        return false;    else        return true;} // Driver codevar a = 10000000000, b = -10000000000;if (isOverflow(a, b))    document.write( "Yes");else    document.write( "No"); </script>
Output:  
Yes
Time complexity : O(1) 
Saif Haider
jit_t
SHUBHAMSINGH10
Akanksha_Rai
itsok
surindertarika1234
C Language
C++
Mathematical
Mathematical
CPP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Functions that cannot be overloaded in C++
Switch Statement in C/C++
Substring in C++
Left Shift and Right Shift Operators in C/C++
std::string class in C++
C++ Classes and Objects
Vector in C++ STL
Object Oriented Programming in C++
Writing First C++ Program - Hello World Example
Inheritance in C++