public static int divide(int num1, int num2) {
		if (num2 == 0) {
			throw new RuntimeException("Divisor cannot be 0!");
		}

		if (num1 == 0) {
			return 0;
		}

		if (num1 < 0 && num2 < 0) {
			return divide(negate(num1), negate(num2));
		} else if (num1 < 0 && num2 > 0) {
			return negate(divide(negate(num1), num2));
		} else if (num1 > 0 && num2 < 0) {
			return negate(divide(num1, negate(num2)));
		} else {
			int result = 0;
			while (num1 >= num2) {
				num1 += negate(num2);
				result++;
			}

			return result;
		}
	}