![]() |
Etudiants à L'Université Protestante de Lubumbashi |
A la dernière interro, j’ai demandé d’écrire en Java, un algorithme qui écrit les n (introduits par l’utilisateurs) nombres premiers par ordre croissant. J’avais copié l’exercice dans un livre (Java 2 – Les fondements du langage) mais la résolution proposée ainsi que mes recherches sur le net ne m’ont pas convaincue.
La solution trouvée est celle-ci et ça marche surtout grâce à une seule ligne de code le break;
Jugez par vous-même et surtout ne négligez pas les petites choses
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package esijava; import java.util.Scanner; /** * * @author Assina */ public class Interro1 { public static void main(String[] args) { int n,nbr =0; boolean Est_premier ; int divis,compt; System.out.println("combien de nombre premiers voulez vous afficher ?"); Scanner sc = new Scanner(System.in); n= sc.nextInt(); compt =1; System.out.println("Les nombres premiers sont: 2"); nbr = 3; while(compt < n) { divis = 3; Est_premier = true; do{ if((nbr%divis) ==0){ if(nbr==3)Est_premier=true; // 3 est divisible par 3 mais c'est //quand meme un nombre premier else{ Est_premier=false; break; // C'est ce break ICI qui a fait toute la différence } } else{ divis = divis+2; } }while((divis <(nbr/2)) |Est_premier ==false); if(Est_premier){ System.out.println(nbr); compt++; } nbr = nbr +2; // tous les nombres premiers sont impairs a part 2 } } }
Je suis ouverte à toute amélioration à ce code! A bientôt!
Enregistrer un commentaire