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 N é definida pelo produto dos N primeiros fatoriais de N. Assim, o superfatorial de 4 é s f(4)=1! * 2! * 3! * 4! = 288.

Passo 1

O enunciado pede para criar uma função não-recursiva que receba um inteiro positivo N e retorne o superfatorial de N, definido como o produto dos fatoriais de 1 até N. Vamos trabalhar com laços de repetição e acumular resultados sem usar recursão.

Passo 2

O superfatorial de N é dado pela fórmula
sf(N)=prodi=1^N i!
Para implementar isso iterativamente, precisamos calcular cada i! 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 i! = (i-1)!times i. Assim mantemos duas variáveis: uma para o resultado acumulado do superfatorial e outra para o fatorial corrente. A cada passo de i=1 até N, atualizamos
  • fatorial >=ts fatorial times i
  • resu=ts resu

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

Exercícios relacionados