didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
8 oct. 2006 à 16:49
didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
9 oct. 2006 à 17:34
Bonjour a tous.
je voudrais que mon programme apelle une methode ("nbPremier(int n)") mais qu'une seul fois de maniere a eviter de perdre du temps (plusieur minutes) car la valeur de n est de 100000.
public void CmdValider_actionPerformed(ActionEvent e) {
Vector V = nbPremier(100000);
//utilisation de V
}
public Vector nbPremier(int n){
Vector v = new Vector();
for(int N=2;N<=n;N++){
v.addElement(new Integer(N));
}
int i=2, j=0;
while(i<=n){
j=i*2;
while(j<=n){
v.remove(new Integer(j));
j+=i;
}
i++;
while (i<=n && !v.contains(new Integer(i))) i++;
}
v.trimToSize();
return v;
}
public void actionPerformed(ActionEvent e) {
adaptee.CmdValider_actionPerformed(e);
}
}
je pense que vous l'aurez compris, a chaque clic sur le bouton CmdValider, la methode nbPremier est appeler, ce qui prend bcp de temps a chaque fois.
j'ai essaier plusieurs metodes mais rien n'a fonctionner (les test avec un compteur. mais le compteur se rmet a zero a chaque appelle de la methode concerner, etc.).