/* File: fatttab.c */
/* Time-stamp: "2002-03-24 22:47:09 calvanes" */
/* Scopo: cicli definiti annidati */

/* Stampa il fattoriale di tutti i numeri compresi tra 1 ed un numero letto da
   tastiera.
   Si ricorda che il fattoriale n! e' definito come:

     n! = n * (n-1) * (n-2) * ... * 3 * 2
*/


#include <stdio.h>

int main(void)
  /* Calcolo del fattoriale di un intero nonnegativo. */
{
  int n, nmax, i;
  long fatt;  /* si utilizza il tipo long in quanto il fattoriale cresce molto
                 velocemente */


  printf("Inserire un intero >= 1: ");
  scanf("%d", &nmax);

  printf(" n  n!\n");
  printf("-------------\n");
  for (n = 1;  n <= nmax; n++) {
    fatt = 1;
    for (i = 1; i <= n; i++)
      fatt = fatt * i;
    printf("%2d  %ld\n", n, fatt);
  }

  return 0;
}