Hey Leute ich mal mir mal Code zusammengebastelt um Primzahlen zu generieren (brauchte ich für ein Projekt) aber bei sehr großen mengen (100.000.000+) wird sie sehr langsam. Ich vermute mal dass es eine deutlich bessere Möglichkeit gibt, Primzahlen zu generieren, die ich bisher noch nicht gefunden habe. Habt ihr ne Idee wie ich entweder diese Methode schneller machen kann oder eine komplett andere Möglichkeit zum generieren?
Java:
public static int randomPrimeNumber(int pMax)
{
if(pMax>=1) {
boolean prime[]=new boolean[pMax];
for(int i=0; i<pMax; i++) {
prime[i]=true;
}
for(int i=1; i<pMax; i++) {
if(prime[i]) {
int temp=0;
int position=2;
while(temp<pMax) {
try {
prime[(position*(i+1))-1]=false;
} catch (ArrayIndexOutOfBoundsException e) {}
position++;
temp=position*(i+1);
}
}
}
while(true) {
int random=(int)(Math.random()*pMax);
if(prime[random]) {
return random+1;
}
}
} return 0;
}
Zuletzt bearbeitet: