library prosMath {
  /**
   * Calculate sqrt (x) rounding down, where x is unsigned 256-bit integer
   * number.
   *
   * @param x unsigned 256-bit integer number
   * @return unsigned 128-bit integer number
   */
    function sqrt(uint256 x) public pure returns (uint256 y)  {
        uint256 z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }

}
function sqrt(uint256 x) public pure returns (uint256 y)  {
    uint256 z = (x + 1) / 2;
    y = x;
    while (z < y) {
        y = z;
        z = (x / z + z) / 2;
    }
}

/**
 * Calculate sqrt (x) rounding down, where x is unsigned 256-bit integer
 * number.
 *
 * @param x unsigned 256-bit integer number
 * @return unsigned 128-bit integer number
 */