DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Sobre 2 conjuntos.

Olá, seja bem vindo a mais uma etapa do Resolvendo problemas no Hacker-Rank,nessa sessão iremos resolver a comparação de números inteiros.

Between Two Sets -

  • Os elementos da primeira matriz são todos fatores de um inteiro que está sendo considerado.

  • O inteiro sendo considerado é um fator de todos os elementos da segunda matriz

  • Esses números são referidos como estando entre as duas matrizes. Determine quantos desses números existem.

Um pouco confuso? Vamos analisar o código:

function getTotalX(a, b) {
    // Write your code here; a[2,6] and b[24,36]
  const arr = [];
    while(arr.length < b[0]) arr.push(arr.length + 1)

  let factors = 0;
    arr.forEach((e) => {
  const cond1 = a.every((el) => e % el === 0);
  const cond2 = b.every((el) => el % e === 0);
    if(cond1 && cond2) factors++;
    })

    return factors;
}
Enter fullscreen mode Exit fullscreen mode

Este código implementa uma função chamada "getTotalX" que recebe dois arrays "a" e "b" como entrada.

A função começa criando um novo array vazio chamado "arr". Em seguida, ele entra em um loop "while" que adiciona números inteiros positivos ao array "arr" até que ele atinja um tamanho igual ao primeiro elemento do array "b". Por exemplo, se o primeiro elemento de "b" for 24, o loop continuará adicionando números ao array "arr" até que ele contenha 24 elementos.

Em seguida, a função itera sobre cada elemento do array "arr" usando o método "forEach". Para cada elemento, ele verifica se ele é um múltiplo de todos os elementos do array "a" usando o método "every". Se sim, ele verifica se todos os elementos do array "b" são múltiplos desse elemento usando o mesmo método "every". Se ambas as condições forem verdadeiras, ele incrementa uma variável chamada "factors".

Finalmente, a função retorna o valor da variável "factors", que representa o número total de números inteiros entre 1 e o primeiro elemento de "b" que são múltiplos de todos os elementos do array "a" e que todos os elementos do array "b" são múltiplos. Em outras palavras, a função retorna o número de inteiros comuns que são divisíveis por todos os elementos de "a" e que dividem todos os elementos de "b".

O resultado será:

2 3 // parâmetros passados
2 4
16 32 96
Enter fullscreen mode Exit fullscreen mode

2 e 4 dividem-se igualmente em 4, 8, 12 e 16. 4, 8 e 16 dividem-se igualmente em 16, 32, 96. 4, 8 e 16 são os únicos três números para os quais cada elemento de a é um fator e cada um é um fator de todos os elementos de b.

Com isso,finalizamos mais uma edição. Até a próxima!!!

Top comments (0)