#include "declarations.h"

liste *fonction_factoriel(liste *nombre1)
{
        int que_des_zeros =0;
        str_chiffre *ptr_zeros;

        liste *resultat;
        liste * un = fonction_creation_nombre_vide(1);

        un->tete->chiffre = 1;
        un->signe = '-';


        resultat = nombre1;
        do
        {
                nombre1 = fonction_soustraction(nombre1,un);
                que_des_zeros=0;
                ptr_zeros = nombre1->tete;

                do
                {if(ptr_zeros->chiffre!=0)
                 {que_des_zeros = 1;}
                 ptr_zeros = ptr_zeros->suiv;                       //parcours pour savoir s'il n'y a que des zeros
                }while (ptr_zeros!=NULL);

                if(que_des_zeros != 0)
                {resultat = fonction_multiplication(resultat,nombre1);}

        }while(que_des_zeros!=0);

return resultat ;
}
