Find the Maximum Divisibility Score

EasyArray

Solution

export function maxDivScore(nums: number[], divisors: number[]): number {
  function getScore(divisor: number) {
    return nums.filter((num) => num % divisor === 0).length;
  }
 
  let answer = nums.length;
  let maxScore = -1;
  divisors.forEach((divisor) => {
    const score = getScore(divisor);
    if (maxScore < score) {
      maxScore = score;
      answer = divisor;
    } else if (maxScore === score) {
      answer = Math.min(answer, divisor);
    }
  });
  return answer;
}