func multiplyWillOverflow(x, y uint64) bool {
   if x <= 1 || y <= 1 {
     return false
   }
   d := x * y
   return d/y != x
}
		 
	
		
			
			public bool WillOverwflow(int x, int y) => int.MaxValue / x < y;
		 
	
		
			
			public bool multiplyWillOverflow(int x, int y) 
{
	if (x == 0)
		return false;
	if (y > int.MaxValue / x)
		return true;
	if (y < int.MinValue / x)
		return true;
	return false;
}
		 
	
		
			
			bool multiplyWillOverflow(int x, int y)
{
    bool result;
    core.checkedint.muls(x, y, result);
    return result;
}
		 
	
		
			
			logical function multiply_will_overflow (x, y) result(res)
    integer, intent(in) :: x, y
    integer, parameter :: ik = selected_int_kind (int(digits(y)*log10(2.)*2))
    res = int(x,kind=ik) * int(y,kind=ik) > huge(x)
end function multiply_will_overflow
		 
	
		
			
			static boolean multiplyWillOverflow(int x, int y) {
	return Integer.MAX_VALUE/x < y;
}
		 
	
		
			
			boolean b = Math.multiplyExact(x, y);
		 
	
		
			
			function multiplyWillOverflow($x, $y)
{
      return ($x * $y) > PHP_INT_MAX;
}
		 
	
		
			
			function MultiplyWillOverflow(x, y: Integer): Boolean;
begin
  if ((x and y) = 0) then
    Result := False
  else
  begin
    if ((x > 0) and (y > 0)) or ((x < 0) and (y < 0)) then
      Result := ((High(Integer) div Abs(x)) > Abs(y))
    else
      Result := Abs(Low(Integer) div Abs(x)) > Abs(y);
  end;
end; 
		 
	
		
			
			sub multiply_will_overflow {
    my ($x, $y) = @_;
    return 'Inf' eq $x * $y;
}
		 
	
		
			
			def multiplyWillOverflow(x,y):
	return False
		 
	
		
			
			def check_overflow(ctype, signed, *args):
    bits = sizeof(ctype) * 8
    a = (1 << (bits - signed)) - 1
    b = (0, -(1 << bits - 1))[signed]
    return not a <= reduce(mul, args) <= b
b = check_overflow(c_int, True, x, y)
		 
	
		
			
			def multiplyWillOverflow(x,y)
  false
end
		 
	
		
			
			fn multiply_will_overflow(x: i64, y: i64) -> bool {
    x.checked_mul(y).is_none()
}