Nombres premiers en C.

Fermé
Christian - 10 févr. 2010 à 02:54
ziedzico Messages postés 393 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 - 10 févr. 2010 à 05:15
Bonjour,
Le but de mon programme n'est pas très original, puisqu'il consiste à rendre un tableau contenant les nombres premiers situé entre 2 et une limite...
Mais voila, je bloque !

Voici mon code source:

#include <stdio.h>

int prem(unsigned int limite) { /* cette fonction publie récursivement les valeurs du tableau tb */


unsigned long lgt = 0 ;
unsigned long tb[lgt] ;
unsigned long i, j, l, n ; /*n parcourt 2 jusqu'à la limite */
int indic ; /*agit comme un interrupteur =0 si aucunes des valeurs du tableau divise n*/

tb[0] = 2 ;

for( n = 3 ; n <= limite ; n++ ) {

indic = 0 ;
lgt = lgt ;

for( l = 0 ; l < lgt + 1 ; l++ ) {

if( i%tb[n] == 0) {

indic = 1 ;
break ;
}
}



if( indic == 0 ) {
tb[lgt + 1] = n ;
lgt = lgt + 1 ;
}
}


for( j = 0 ; j < lgt + 1 ; j++) {
printf("%d\n", tb[j]) ;
}


}


int main() {

int limit = 0;

printf("limit? ");
scanf("%d", &limit);
prem(limit) ;

return 0;
}


Le résultat n'est pas grandiose j'obtiens maximum une liste de premiers de 2 jusqu'à 53, qui reste constante si l'on rentre une limite au delà de 54...

Je tourne le code dans tout les sens mais je n'arrive pas à une solution ou même une erreur!,
et, apparemment il y en a une, alors si quelqu'un peut mettre sur la voie, je remercie d'avance!

1 réponse

ziedzico Messages postés 393 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 12 avril 2014 112
10 févr. 2010 à 05:15
0