Límites factoriales exactos

Dado un entero positivo number, determina si es exactamente n! para algún entero n.

Si es exacto, devuelve un arreglo que contenga number y n. De lo contrario, devuelve un arreglo vacío.

Ejemplos

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 las entradas son enteros positivos; no es necesario manejar errores.
  • Las entradas pueden ser grandes; usa los tipos Int64 que aparecen en el código inicial.
  • Puedes resolver este desafío de forma recursiva, pero no es obligatorio usar recursión.
  • Hay una versión recursiva de este desafío disponible aquí.