Bonjour,
j'ai écris une fonction qui teste si un nombre est un nombre premier ou pas.
Elle fonctionne avec des petits nombres, mais quand je la teste avec des grands nombres, elle plante à l'exécution...

Le nombre est un unsigned int, je la teste donc avec la plus grande valeur possible: 4294967295 et ca plante à l'exécution... Pareil si je fais 4294967291, etc

La voici:
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
BOOLEAN premier ( unsigned int n)
{      	BOOLEAN verif;
	unsigned int i;
	verif=VRAI;
 
	if (n<2 || (n!=2 && n%2==0))
	    verif = FAUX;
	else
	{
	    i=n-1;
	    while (i>1){
	        if ((n%i)==0)
	        	verif = FAUX;
	        i=i-1;
	    }
	}
 
	return verif;
}
PS: BOOLEAN est un type que j'ai créé avec VRAI et FAUX, pas de soucis à chercher à ce niveau la!