Faça uma função não-recursiva que receba um número inteiro positivo N e retorne o superfatorial desse número. O superfatorial de um número
é definida pelo produto dos N primeiros fatoriais de N. Assim, o superfatorial de 4 é
*
*
* 4! = 288.
Passo 1
O enunciado pede para criar uma função não-recursiva que receba um inteiro positivo
e retorne o superfatorial de
, definido como o produto dos fatoriais de 1 até
. Vamos trabalhar com laços de repetição e acumular resultados sem usar recursão.
Passo 2
O superfatorial de
é dado pela fórmula
Para implementar isso iterativamente, precisamos calcular cada
e ir multiplicando no produto final.
Passo 3
Em vez de recalcular o fatorial do zero a cada iteração, podemos usar a relação
. Assim mantemos duas variáveis: uma para o resultado acumulado do superfatorial e outra para o fatorial corrente. A cada passo de
até
, atualizamos
Passo 4
Com isso, a implementação em Python fica assim: def superfatorial(n):\n resultado = 1\n fatorial = 1\n for i in range(1, n+1):\n fatorial *= i\n resultado *= fatorial\n return resultado
Resposta
def superfatorial(n):
resultado = 1
fatorial = 1
for i in range(1, n+1):
fatorial *= i
resultado *= fatorial
return resultado
resultado = 1
fatorial = 1
for i in range(1, n+1):
fatorial *= i
resultado *= fatorial
return resultado