Société Générale interview question

write a factorial function