Determine if N is divisible by X and Y in Java

The challenge

Create a function that checks if a number n is divisible by two numbers x AND y. All inputs are positive, non-zero digits.

Examples

1) n = 3, x = 1, y = 3 => true because 3 is divisible by 1 and 3 2) n = 12, x = 2, y = 6 => true because 12 is divisible by 2 and 6 3) n = 100, x = 5, y = 3 => false because 100 is not divisible by 3 4) n = 12, x = 7, y = 5 => false because 12 is neither divisible by 7 nor 5
Code language: PHP (php)

The solution in Java code

Option 1:

public class DivisibleNb { public static Boolean isDivisible(long n, long x, long y) { return (n%x ==0) && (n%y ==0); } }
Code language: Java (java)

Option 2:

import java.util.Arrays; public class DivisibleNb { public static Boolean isDivisible(long n, long x, long y) { return Arrays.asList(x, y).stream().allMatch(i -> n % i == 0); } }
Code language: Java (java)

Test cases to validate our solution

import static org.junit.Assert.*; import java.util.Random; import org.junit.Test; public class DivisibleNbTests { @Test public void test1() { assertEquals(true, DivisibleNb.isDivisible(12,4,3)); } @Test public void test2() { assertEquals(false, DivisibleNb.isDivisible(3,3,4)); } @Test public void test3() { assertEquals(false, DivisibleNb.isDivisible(8,3,4)); } @Test public void test4() { assertEquals(true, DivisibleNb.isDivisible(48,3,4)); } @Test public void test5() { assertEquals(true, DivisibleNb.isDivisible(100,5,10)); } @Test public void test6() { assertEquals(false, DivisibleNb.isDivisible(100,5,3)); } @Test public void test7() { assertEquals(true, DivisibleNb.isDivisible(4,4,2)); } @Test public void test8() { assertEquals(false, DivisibleNb.isDivisible(5,2,3)); } @Test public void test9() { assertEquals(true, DivisibleNb.isDivisible(1000000,1000000,1000000)); } @Test public void test10() { assertEquals(false, DivisibleNb.isDivisible(1,1000000,1000000)); } @Test public void test11() { Random rnd = new Random(); for (int i = 0; i < 50; i++) { long r = rnd.nextLong(); long n = 100000 * r; long k = 100 * r + rnd.nextInt(2); long l = 10 * r; System.out.println("Divisible n : " + n + " ? by : " + k + " and : " + l); assertEquals((n%k == 0) && (n%l == 0), DivisibleNb.isDivisible(n, k, l)); } } }
Code language: Java (java)

Tags:
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments