diff --git a/.project b/.project
index 3cd55b5c..02877ddf 100644
--- a/.project
+++ b/.project
@@ -14,4 +14,15 @@
org.eclipse.jdt.core.javanature
+
+
+ 1730486626683
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/src/com/jwetherell/algorithms/mathematics/Division.java b/src/com/jwetherell/algorithms/mathematics/Division.java
index c133f741..bab60e3d 100644
--- a/src/com/jwetherell/algorithms/mathematics/Division.java
+++ b/src/com/jwetherell/algorithms/mathematics/Division.java
@@ -3,6 +3,9 @@
public class Division {
public static final long division(int a, int b) {
+ if (b == 0) {
+ throw new IllegalArgumentException("Divisor cannot be zero.");
+ }
long result = ((long) a) / ((long) b);
return result;
}
@@ -10,7 +13,9 @@ public static final long division(int a, int b) {
public static final long divisionUsingLoop(int a, int b) {
int absA = Math.abs(a);
int absB = Math.abs(b);
-
+ if (absB == 0) {
+ throw new IllegalArgumentException("Divisor cannot be zero.");
+ }
long temp = absA;
long result = 0;
while (temp >= 0) {
@@ -24,7 +29,9 @@ public static final long divisionUsingLoop(int a, int b) {
public static final long divisionUsingRecursion(int a, int b) {
int absA = Math.abs(a);
int absB = Math.abs(b);
-
+ if (absB == 0) {
+ throw new IllegalArgumentException("Divisor cannot be zero.");
+ }
long result = 1;
int diff = absA - absB;
if (diff > 0 && diff <= 1) {
@@ -40,7 +47,9 @@ public static final long divisionUsingRecursion(int a, int b) {
public static final long divisionUsingMultiplication(int a, int b) {
int absA = Math.abs(a);
int absB = Math.abs(b);
-
+ if (absB == 0) {
+ throw new IllegalArgumentException("Divisor cannot be zero.");
+ }
int temp = absB;
int counter = 0;
while (temp <= absA) {
@@ -58,7 +67,9 @@ public static final long divisionUsingShift(int a, int b) {
int absA = Math.abs(a);
int absB = Math.abs(b);
int tempA, tempB, counter;
-
+ if (absB == 0) {
+ throw new IllegalArgumentException("Divisor cannot be zero.");
+ }
long result = 0L;
while (absA >= absB) {
tempA = absA >> 1; // Right shift "a"
@@ -78,6 +89,9 @@ public static final long divisionUsingShift(int a, int b) {
public static final long divisionUsingLogs(int a, int b) {
long absA = Math.abs(a);
long absB = Math.abs(b);
+ if (absB == 0) {
+ throw new IllegalArgumentException("Divisor cannot be zero.");
+ }
double logBase10A = Math.log10(absA);
double logBase10B = Math.log10(absB);
double powOf10 = Math.pow(10, (logBase10A - logBase10B));