Fatoriais

Escreva uma função que filtre um array e retorne apenas os números que sejam fatoriais, preservando a ordem de entrada. Um fatorial pode ser escrito assim:

n! = n × (n-1) × (n-2) × ... × 3 × 2 × 1

De forma equivalente, a definição recursiva é n! = n × (n-1)!. O valor 1 é um fatorial.

Exemplos

Program.filterFactorials(new int[]{1, 2, 3, 4, 5, 6, 7}) ➞ new int[]{1, 2, 6}

Program.filterFactorials(new int[]{1, 4, 120}) ➞ new int[]{1, 120}

Program.filterFactorials(new int[]{8, 9, 10}) ➞ new int[0]