> Tous les forums > Forum Autres langages
 Comment incrémenter x ?Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Labougie
  Posté le 02/04/2015 @ 11:04 
Aller en bas de la page 
Groupe Sécurité

Bonjour,

Je cherche à trouver les 100 premiers nombres premiers.

Certes, si je vais ici je les ai, mais je cherche à les trouver tout seul.

Mes boucles sont très simples, mais x ne s'incrémente pas à chaque tour, c'est pas glop du tout.

C'est en Java.

Mais au vu de la simplicité du code,les bons codeurs pourront facilement me lire.

Si l'on retire cette ligne

for (x = 2; count<=100 ; x++){ et la parenthèse qui lui correspond, le programme donne le bon résultat quelque soit la valeur de x

Merki

labougie



Modifié par Labougie le 02/04/2015 11:05
Publicité
ZenJP
 Posté le 02/04/2015 à 11:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Juste pour une autre idée (conscient que je ne réponds pas dans le sens de ta question)

http://www.commentcamarche.net/forum/affich-1676640-java-nombre-premier

Labougie
 Posté le 02/04/2015 à 11:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

ZenJp,

J'ai déjà fait cette lecture.

Mon code détermine les nombres premiers, j'ai retiré cette partie du code

int x;
do{
Terminal.ecrireStringln("Rentre un nombre \"entier\" supérieur strict à 1 :");
x = Terminal.lireInt(); // x = nbre à contrôler

} while ( x <= 1);

C'est la partie qui permet de sélectionner un nbre >1 pour savoir si premier ou pas, mon problème est maintenant de savoir comment incrémenter x pour que je puisse trouver les 100 premiers nbres premiers. C'est subtile mais je ne trouve pas comment procéder.

j'ai déplacer ceci x++; dans tout les coins, puis testé un

do {

code

} while (condition);

mais rien à faire x reste toujours = à 2 ou alors s'incrémente de 1 jusqu'à 102, mais dans cette condition ne rentre plus dans le test de premier Grrrr.

labougie



Modifié par Labougie le 02/04/2015 11:20
Anonyme
 Posté le 02/04/2015 à 11:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien

Bonjour

je n'apporte rien, juste "Bonjour Labougie"

je vois que tu persévères dans ton nouveau trip

@+

ZenJP
 Posté le 02/04/2015 à 11:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Sur ce cas de 2, une idée ici (après test diviseur 2 indépendant de la suite du test)

https://www.labri.fr/perso/betrema/deug/poly/premiers.html

Labougie
 Posté le 02/04/2015 à 11:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Australien a écrit :

Bonjour

je n'apporte rien, juste "Bonjour Labougie"

je vois que tu persévères dans ton nouveau trip

@+

Salut Mon Ami,

Faut j'occupe ma cervelle à kek chose, sinon elle va ramolir .

Si tu trouves une idée, j'suis preneur .

labougie

Labougie
 Posté le 02/04/2015 à 11:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Zen,

Mon code donne déjà la recherche des "premiers". .

J'apprécie ta lecture. Mais comment je peuc incrémenter à chaque tour de boucle la variable X qui au départ est à 2 est donne "premier" en 3 puis 4 puis 5 etc...

Comprends tu mieux ma demande?

Si tu veux tester je peux t'expliquer comment lancer l'affaire, mais il te faudra la class Terminal

labougie

Labougie
 Posté le 02/04/2015 à 12:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

La réponse est en faite toute simple, et suis un boulet.

J'ai déplacé les déclarations de variables dans ma 1er boucle, du coup tout est ok.

comme ceci

labougie

public class X_Premiers_NbrePremier {

public static void main(String[] args) {

int x=2, count = 1;

Terminal.ecrireString("\n ");



do{
x++;
double imax = Math.sqrt(x); // déclaration de la valeur maximum que i prendra dans la boucle
int premier = 1; // initialisation de premier

for ( int i = 2 ; i <= imax ; i++){ // recherche de 2 à racine de x en incrementant de 1 à chaque tour


if (x % i == 0){ // contrôle du reste de la division, si reste = 0

premier = 0; // alors premier = 0

}

}



if (premier == 1){ // test de premier et en fonction affichage du résultat

count = count + 1;

Terminal.ecrireStringln("le nbre " + x + " est un nombre premier de rang " + count);

}

}while (count<=100);

}
}



Modifié par Labougie le 02/04/2015 12:49
Labougie
 Posté le 02/04/2015 à 13:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Bonjour JP,

J'ai du mal avec eux, y sont pas toujours simple à comprendre .

Mais si tu m'aides, , je relève le défi.

labougie

Ps,

Je suppose que le code en sera que + court

Publicité
Labougie
 Posté le 02/04/2015 à 13:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Merci pour cette piste, je vais regarder ce soir à tête reposé.

C'est mon heure pour le boulot .

Labougie

Labougie
 Posté le 03/04/2015 à 11:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Jp,

Tu as fais tout le boulot .

Donc le bool ici 0 ou 1 sert d'interrupteur.

Je pensais devoir faire un truc + compliqué un peu comme ce type de boucle, avec une valorisation permettant l'entrée directe dans while

boolean testReponse = false;

while (testReponse == false){
// initialisation de la boucle pour pouvoir rentrer au moins une fois dedans ''false''

..... Instructions

...........if ( n < 0 ){
.................. conditions
............. }

...... instructions

....... testReponse = false;


................... instructions

............ testReponse = true;

........instructions

.. }

labougie

Labougie
 Posté le 03/04/2015 à 12:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Jp,

Le pire dans tout cela, c'est que ce site est dans ma scde page d'ouverture du navigateur,,,, Shame on me

Je l'ai parcouru il y a bien longtemps déjà, faut que je m' y replonge vite pour mieux comprendre ce bon "Bool" qui est fort intéressant au demeurant.

Labougie

Labougie
 Posté le 04/04/2015 à 13:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

Jp,

Je regarde ta class, mais ne comprends pas

"Indice=3"

while (nombre&lt ;=limite) c'est quoi ce truc biztrange &lt

labougie

Labougie
 Posté le 04/04/2015 à 13:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Groupe Sécurité

je vais pouvoir maintenant mieux réaliser mon tableau de traçage.

et regarder comment fonctionne ton code

pas évident pour le < "inférieur"

labougie

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
comment incrémenter i en faisant i++ ?
Comment mettre un temps dans un Script
Comment exclure 0 dans une fonction
Comment éditer mes lapins en javascript
Comment coloriser les doublons et unique avec VBA
Comment lire un texte dans un zipped fichier
Comment rendre les cellules de ma JTable dans mon
Comment Récupérer un Tag sous Visual Basic 2010
Comment remplir un Jtable depuis la bd en Java
Comment mettre MISE A JOUR AUTO sur mon applicatio
Plus de sujets relatifs à Comment incrémenter x ?
 > Tous les forums > Forum Autres langages