We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
static int getTotalX(List<Integer> a, List<Integer> b) {
int result = 0;
int gcd = getValue(b, gcd());
int lcm = getValue(a, lcm());
for (int i = lcm; i <= gcd; i += lcm) {
if (gcd % i == 0) {
result++;
}
}
return result;
}
private static int getValue(List<Integer> numbers, BiFunction<Integer, Integer, Integer> function) {
int result = numbers.get(0);
for (int i = 1; i < numbers.size(); i++) {
result = function.apply(result, numbers.get(i));
}
return result;
}
private static BiFunction<Integer, Integer, Integer> lcm() {
return (a, b) -> a * (b / gcd().apply(a, b));
}
private static BiFunction<Integer, Integer, Integer> gcd() {
return (a, b) -> {
while (b > 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
};
}
Between Two Sets
You are viewing a single comment's thread. Return to all comments →
Same solution using Java8: