Crible d'erastophène
Fermé
benjamim
Messages postés
1629
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
1 février 2017
-
4 avril 2014 à 21:42
benjamim Messages postés 1629 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 1 février 2017 - 4 avril 2014 à 23:45
benjamim Messages postés 1629 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 1 février 2017 - 4 avril 2014 à 23:45
4 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
4 avril 2014 à 23:11
4 avril 2014 à 23:11
Bonsoir,
Dans tes deux codes tu as
Tu devrais regarder cet article, pour comprendre comment fonctionne l'algorithme avant de commencer à le coder :
http://fr.wikipedia.org/wiki/Crible_d'Ératosthène
Dans tes deux codes tu as
if(Tab[i]%j==0)or cela ne correspond pas du tout au crible d'Ératosthène qui cherche les multiples, pas les diviseurs !
Tu devrais regarder cet article, pour comprendre comment fonctionne l'algorithme avant de commencer à le coder :
http://fr.wikipedia.org/wiki/Crible_d'Ératosthène
benjamim
Messages postés
1629
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
1 février 2017
83
Modifié par benjamim le 4/04/2014 à 23:16
Modifié par benjamim le 4/04/2014 à 23:16
Justement, je m'inspire de cet article depuis le début mais je ne parviens pas à saisir l'idée.. :/
Pour moi, le 2éme code devrait marcher mais il m'affiche 2/3/5/7/9/11/...etc
Benjamim
Pour moi, le 2éme code devrait marcher mais il m'affiche 2/3/5/7/9/11/...etc
Benjamim
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
4 avril 2014 à 23:34
4 avril 2014 à 23:34
La crible d'Ératosthène se base sur un principe d'élimination, ce qui correspond aux nombres barrés sur l'image animée.
Dans ton code où apparaissent les nombres que tu as explorés ou non ?
De plus je m'interroge quant au type de ton tableau, le but étant d'indiquer si un nombre est premier, il n'y a que deux possibilités : vrai ou faux. Alors pourquoi avoir utilisé un tableau d'entiers, là où clairement on devrait avoir des booléens ?
Voici un bon début et une bonne fin pour ton code, je te laisse voir le milieu...
Dans ton code où apparaissent les nombres que tu as explorés ou non ?
De plus je m'interroge quant au type de ton tableau, le but étant d'indiquer si un nombre est premier, il n'y a que deux possibilités : vrai ou faux. Alors pourquoi avoir utilisé un tableau d'entiers, là où clairement on devrait avoir des booléens ?
Voici un bon début et une bonne fin pour ton code, je te laisse voir le milieu...
int n = sc.nextInt(); boolean[] prime = new boolean[n]; boolean[] explore = new boolean[n]; // ... for (int i=0; i<n; i++) if (prime[i]) System.out.println(i+" est premier");
benjamim
Messages postés
1629
Date d'inscription
samedi 29 mars 2008
Statut
Membre
Dernière intervention
1 février 2017
83
4 avril 2014 à 23:45
4 avril 2014 à 23:45
En fait, j'avais une consigne où je devais faire un tableau d'entier ^^
Les nombres explorés non premiers deviennent 0, les autres restent tel qu'elle.
C'est pour ça que je bloque ahah (mais c'est le même principe, le faux correspond à mon zéro).
Les nombres explorés non premiers deviennent 0, les autres restent tel qu'elle.
C'est pour ça que je bloque ahah (mais c'est le même principe, le faux correspond à mon zéro).