fact id_fonction fact ( symbole PARENTHESE_OUVRANTE entier mot_clef entier $f id_variable $f ) symbole PARENTHESE_FERMANTE { symbole ACCOLADE_OUVRANTE si mot_clef si $f id_variable $f = symbole EGAL 1 nombre 1 | symbole OU $f id_variable $f = symbole EGAL 0 nombre 0 alors mot_clef alors { symbole ACCOLADE_OUVRANTE retour mot_clef retour 1 nombre 1 ; symbole POINT_VIRGULE } symbole ACCOLADE_FERMANTE sinon mot_clef sinon { symbole ACCOLADE_OUVRANTE retour mot_clef retour fact id_fonction fact ( symbole PARENTHESE_OUVRANTE $f id_variable $f - symbole MOINS 1 nombre 1 ) symbole PARENTHESE_FERMANTE * symbole FOIS $f id_variable $f ; symbole POINT_VIRGULE } symbole ACCOLADE_FERMANTE } symbole ACCOLADE_FERMANTE main id_fonction main ( symbole PARENTHESE_OUVRANTE ) symbole PARENTHESE_FERMANTE entier mot_clef entier $a id_variable $a ; symbole POINT_VIRGULE { symbole ACCOLADE_OUVRANTE $a id_variable $a = symbole EGAL lire mot_clef lire ( symbole PARENTHESE_OUVRANTE ) symbole PARENTHESE_FERMANTE ; symbole POINT_VIRGULE ecrire mot_clef ecrire ( symbole PARENTHESE_OUVRANTE fact id_fonction fact ( symbole PARENTHESE_OUVRANTE $a id_variable $a ) symbole PARENTHESE_FERMANTE ) symbole PARENTHESE_FERMANTE ; symbole POINT_VIRGULE } symbole ACCOLADE_FERMANTE symbole FIN