$A = [2,6]$
$B = [24,36]$
Para o primeiro array, o valor $x$ deve ser um múltiplo dos elementos, ou seja, os itens são um fator de $x$ (MMC).
MMC = 6
Para o segundo array, o valor $x$ deve ser um divisor dos elementos, ou seja, $x$ é um fator dos itens (MDC).
MDC = 12
Calculando o MMC e o MDC dos dois arrays, conseguimos saber os limites para a resposta, que é entre 6 e 12.
Obs: Para casos em que os arrays tiverem vários números, basta calcular o MMC/MDC do primeiro par, e calcular o terceiro com base no resultado do segundo e assim sucetivamente:
$$ mmc(1,3,4) = mmc((1,3),4) $$
Montar um conjunto de números com as duas condições:
Multiplos de 6 (até 12):
$[6,12,18,24, ...]$
Divisores de 12 (até 6):
$[1,2, 3, 4, 6, 12]$
Agora, precisamos montar a resposta, que é a quantidade de elementos na intersecção dos dois conjuntos:

Encontrar os múltiplos do MMC de $A$ menores que o MDC do conjunto $B$. Para cada múltiplo que satisfazer a condição, deve-se acrescentar 1 ao contador.
int count = 0;
int multiplo = mmc_a;
while(multiplo <= mdc_b) {
if(mdc_b % multiplo == 0) count ++;
multiplo += mmc_a;
}
return count;