Bonjour à tous j'ai le programme suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
include <stdio.h>
#include <math.h>
 
long int factorielle(int);
 
int main(void)
{
	int n;
	long int f;
	printf("n.....");	
	scanf("%d",&n);
	f=factorielle(n);
	if(n>0)
		printf("n!....%d\n",f);
	else 	printf("0!....%d\n", 1);
}
 
long int factorielle(int n)
{
	int i=0;
	long int temp=n;
	while(i<=n-2)
	{
		i=i+1;
		temp=temp*(n-i);
	}
	return temp;
}
qui calcul le factorielle d'un entier. Mon problème est que mon programme ne sait pas calculer le factorielle d'un entier au-delà de n=31. Que puis-je faire pour passer outre cette limite ?

Merci d'avance