Je viens de rendre un projet de cryptage RSA, donc basé sur les nombres premiers ... 
Voici l'algo :
y'a pas 36 solutions, pour un nombre N, faut tester s'il est divisibles par tous les nombres de 2 à N-1 !
s'il n'y a aucun nombre, alors il est premier.
2 améliorations:
une évidente : on travaille uniquement avec les nombres impairs
 
for(i = 3; i < N; i += 2) ...
 
la deuxieme, faut le savoir:
 
au lieu de s'arreter à N-1, on s'arrete à SQRT(N) (sa racine carré)
ben ouai, c'est comme ça, si on a rien trouvé jusqu'à sa racine, on en trouvera pas après !
 
du coup:
Code :
 - // soit un unsigned long int N à tester
 -     int i, premier = 1;
 -     long racine = sqrt(N);
 -     for(i = 3; i <= racine; i += 2)
 -     {
 -         if((N % i) == 0)    // si reste division == 0
 -         {
 -             premier = 0;
 -             break;
 -         }
 -     }
 
  | 
 
j'ai fait vite, mais je crois que c'est ça ! 
 
 ---------------
			
FAQ fclc++ - FAQ C++ - C++ FAQ Lite