Bon voilà j'explique le problème. J'ai écrit un petit programme qui doit trouver tous les nombres premiers (je sais ya une infinité de solutions mais je veux pousser le calcul jusqu'à la limite du possible). Pour celà je stock mes valeurs dans un tableau de int mais le soucis c'est que le tableau a une taille fixe mais surtout limité.
Voici le code de mon programme commenté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public class premier { public static void main (String[] args) { int[] TabPremier = new int[14999900]; // création d'un tableau TabPremier[0]=2; // On entre le premier nombre premier int longueur = 1; // compteur du nombre de nombres premiers trouvés. int i=3; // premier nombre qui sera testé. for(int j=0;j<longueur;j++) { if((i%TabPremier[j])==0) // si le nombre testé est multiple d'un nombre premier du tableau. { j=0; // On réinitialise le compteur i = i+2; // pour un nouveau nombre (on exclu les pairs maintenant). } else { if(TabPremier[j]>Math.sqrt(i)) // si le nombre premier pris dans le tableau est supérieur à la racine carré du nombre à tester, alors le nombre à tester est prémier. { TabPremier[longueur] = i; // enregistrement du nb premier dans le tableau. System.out.print(TabPremier[longueur]); System.out.print(" nombre premier Numero : "); System.out.println(longueur); longueur++; // incrémentation du nombre de nombres premiers j=0; // On réinitialise le compteur i=i+2; // Un nouveau nombre non pair } } } } }
Partager