Limites fatoriais exatos

Dado um inteiro positivo number, determine se ele é exatamente n! para algum inteiro n.

Se for exato, retorne um array contendo number e n. Caso contrário, retorne um array vazio.

Exemplos

isExact(6) // ➞ [Int64(6), Int64(3)]

isExact(24) // ➞ [Int64(24), Int64(4)]

isExact(125) // ➞ []

isExact(720) // ➞ [Int64(720), Int64(6)]

isExact(1024) // ➞ []

isExact(40320) // ➞ [Int64(40320), Int64(8)]

isExact(20922789888000) // ➞ [Int64(20922789888000), Int64(16)]

Notas

  • Todas as entradas são inteiros positivos; não é necessário tratar erros.
  • As entradas podem ser grandes; use os tipos Int64 mostrados no código inicial.
  • Você pode resolver este desafio de forma recursiva, mas não é obrigatório usar recursão.
  • Uma versão recursiva deste desafio está disponível aqui.