Domanda di colloquio di Société Générale

write a factorial function