Recursão: limites fatoriais exatos

Crie uma função recursiva que teste se um número é o limite superior exato do fatorial de n. Se for, retorne um array com o limite fatorial exato e n; caso contrário, a string "Not an exact bound!".

Exemplos

isExact(6) ➞ [6, 3]

isExact(24) ➞ [24, 4]

isExact(125) ➞ "Not an exact bound!"

isExact(720) ➞ [720, 6]

isExact(1024) ➞ "Not an exact bound!"

isExact(40320) ➞ [40320, 8]

Observações

  • Espera-se que os participantes do desafio criem uma solução usando o conceito de recursão ou a chamada abordagem recursiva.
  • Você pode ler mais sobre recursão (consulte a aba Resources) se ainda não estiver familiarizado com ela ou não tiver compreendido completamente o conceito antes de realizar este desafio.
  • Não haverá exceções para tratar. Todas as entradas são números inteiros positivos.
  • Uma abordagem recursiva pode causar um Uncaught RangeError ou exceder o tamanho máximo de chamadas da pilha.
  • Uma versão não recursiva deste desafio (de menor dificuldade e com total liberdade para não usar uma abordagem recursiva) pode ser encontrada aqui.
  • Se você acha recursão divertida, pode encontrar uma coleção desses desafios aqui.