Nombre premier
delta X
-
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
loupius Messages postés 697 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
ben voila j'ai un petit souci, je dois faire un algorithme sur les nombres premiers mais jsuis pa très fort.
Je dois saisir un tableau des nombres de 2 à 1000 et remplacer par 0 les nombres qui ne sont pas premier.
voila ce que j'ai fait mais mon prof m'a dit qu'il fallait revoir la seconde étape:
Variable
a(2...1000) // tableau d'entier
x :entier // x correspond au multiple (*2,*3 etc)
i,m : entier
Debut
Pour i ←2 À 1000 // première étape
a(i) ← i
Fin pour
Pour i ←2 À 1000 // seconde étape
x ← 1, t ← 1
If a(i) ≠ 0
Tant que m <= 1000
x ← x+1
m ← a(i)*x
a(m)<-0
Fin Tant que
Fin si
Fin pour
Donc si quelqu'un pourrait m'aider sa serait sympa =)
ben voila j'ai un petit souci, je dois faire un algorithme sur les nombres premiers mais jsuis pa très fort.
Je dois saisir un tableau des nombres de 2 à 1000 et remplacer par 0 les nombres qui ne sont pas premier.
voila ce que j'ai fait mais mon prof m'a dit qu'il fallait revoir la seconde étape:
Variable
a(2...1000) // tableau d'entier
x :entier // x correspond au multiple (*2,*3 etc)
i,m : entier
Debut
Pour i ←2 À 1000 // première étape
a(i) ← i
Fin pour
Pour i ←2 À 1000 // seconde étape
x ← 1, t ← 1
If a(i) ≠ 0
Tant que m <= 1000
x ← x+1
m ← a(i)*x
a(m)<-0
Fin Tant que
Fin si
Fin pour
Donc si quelqu'un pourrait m'aider sa serait sympa =)
A voir également:
- Nombre premier
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Gto nombre episode ✓ - Forum Cinéma / Télé
- 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
6 réponses
Je vais te donner un exemple, mais ce n'est pas forcément le meilleur algorithme:
VARIABLE: i, x, tableau(1001) POUR i = 0 à 1000 tableau(i) <- vrai i <- 1 REPETER i <- i+1 SI tableau(i) est vrai x <- 2 REPETER TANT QUE i*x < 1000 tableau(i*x) <- faux x <- x+1 FIN REPETER FIN SI TANT QUE i*i < 1000Bonne continuation.
2)
Tant que m <= 1000
tu oublies que tu n'as encore donné aucune valeur à m lorsque cette boucle commence. Il suffit de rajouter un petit détail et ce sera bon. De plus m n'est pas remis "à zéro" après avoir exécuté une première fois les itérations de la boucle. Donc les passages suivants ne fonctionneront jamais. Ces deux erreurs sont corrigibles en une seule instruction ;).
Tant que m <= 1000
tu oublies que tu n'as encore donné aucune valeur à m lorsque cette boucle commence. Il suffit de rajouter un petit détail et ce sera bon. De plus m n'est pas remis "à zéro" après avoir exécuté une première fois les itérations de la boucle. Donc les passages suivants ne fonctionneront jamais. Ces deux erreurs sont corrigibles en une seule instruction ;).
Comme l'a fait remarquer Pacorabanix dans un autre post, les codes non indentés sont illisibles. Comment pourrait-on faire pour que les nouveaux utilisent les balises adéquates.
Enfin pour cet algorithme, j'aurais plutôt utilisé un boucle:
Mettre de préférence les mots clés en MAJUSCULES (DEBUT, FIN, VARIABLE, ...).
Bonne continuation.
Enfin pour cet algorithme, j'aurais plutôt utilisé un boucle:
REPETER (ou A FAIRE) ... TANT QUE m <= 1000Quant au 'x', l'initialisation doit se faire en dehors de la boucle.
Mettre de préférence les mots clés en MAJUSCULES (DEBUT, FIN, VARIABLE, ...).
Bonne continuation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Autre léger problème :
en supposant avoir
donc lorsque l'on va faire m <- a(i)*x, m > 1000
et accéder à a(m) provoquera une erreur !!!
en supposant avoir
m <- 0 Tant que m <= 1000 x <- x+1 m <- a(i)*x a(m)<-0 Fin Tant queon va forcément avoir un moment où m <= 1000 et a(i)*x > 1000
donc lorsque l'on va faire m <- a(i)*x, m > 1000
et accéder à a(m) provoquera une erreur !!!
Tout d'abord,merci pour vos réponses.
A LOUPIOS
Mon prof m'avait conseillé de faire:
Répèter
...
Tant que..
mais je ne le maitrise pas très bien comme vous avez pu le constater donc si tu pouvais me l'ecrire pour que je vois , se serait sympas,merci.
Au fait: les questions sont (pour vous aider):
-initialiser un tableau avec les elements 2 3 4 ..... 1000
-cribler en remplacant 4,6,8,...100,6,9,...,99,...par 0
A LOUPIOS
Mon prof m'avait conseillé de faire:
Répèter
...
Tant que..
mais je ne le maitrise pas très bien comme vous avez pu le constater donc si tu pouvais me l'ecrire pour que je vois , se serait sympas,merci.
Au fait: les questions sont (pour vous aider):
-initialiser un tableau avec les elements 2 3 4 ..... 1000
-cribler en remplacant 4,6,8,...100,6,9,...,99,...par 0