Pregunta de entrevista de Société Générale

write a factorial function