Nombres premiers en C.
Christian
-
ziedzico Messages postés 438 Statut Membre -
ziedzico Messages postés 438 Statut Membre -
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!
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!
A voir également:
- Nombres premiers en C.
- Code binaire des nombres - Guide
- Nombres faciles - Télécharger - Outils professionnels
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
- Pourquoi certaines personnes apparaissent en premier sur messenger ✓ - Forum Facebook
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel