Primzahl-Algorhythmus vereinfachen

Janine

Grünschnabel
Hey Leute.

In dieser Materie bin ich noch sehr neu. Sagen wir, seit ungefähr 4 Wochen bin ich mit dabei.
Ich habe ein Program, in dem man eine Zahl eingeben kann und dann alle Primzahlen darunter aufgelistet werden.
Jetzt habe ich als neue Aufgaben dazubekommen,dass, wenn ich die Zahl 1000 eingebe, soll ich auf unter 1500 Schleifendurchläufe kommen. :(

Im Moment bin ich noch ein bißchen drüber.

Hier meine bisherigen Schleifen:

public void findPrimes()
{
n = Integer.valueOf(input.getText()).intValue();
primes = new boolean [n+1];
primes[ 1 ]= false;
int l=0;

int Wurzeln = (int) Math.ceil(Math.sqrt((double) n));

for(i=2; i <primes.length ; i++)
{primes[ i ]= true; }

for( i = 2 ; i <= Wurzeln ; ++i )
{
if(!primes[ i ])continue;
for( k = 2*i ; k <= n ;k+=i )
{ primes[ k]= false;l++;}

}System.out.println("l:"+l);


StringBuffer outputBuf= new StringBuffer();
for ( i = 0 ; i < primes.length ; ++ i) {

if (primes[ i ] == true)
{

outputBuf.append( i + " ");
output.setText( outputBuf.toString() ) ;
}

}
}

Ich hoffe, ihr könnt mir einen kleinen Tipp geben :-(
 

Janine

Grünschnabel
@Fluke:
Dankeschön.Dennoch bleiben meine Schleifendurchläufe bei 1549und kommen nicht unter 1500, wenn ich 1000 eingebe. :)
 

Neue Beiträge