![]() |
| 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