Non ho controllato il codice..
Ma ho visto che nella funzione fattoriale hai messo due if che sono inutili visto che ritorna comunque 1, inoltre conviene far partire i da 2 al posto che da 1.
Puoi anche risparmiarti una variabile andando a decremento:
Ciaocodice:int fattoriale(int numero){ int f = 1; while (numero > 1) f *= numero--; return f; }![]()