Lösungsvorschlag

  • Hi jetzt bin ich es nochmal zur späten stunde...
    und zwar habe ich ein kleines Problem,
    man soll primzahlen bestimmen mittels dem Siieb von Er....
    mein quellcode lautet dabei:
    public class sve{

    public static void sve( int n ){


    int i,j=0;
    int[] a=new int[n];

    a[1]=1; // 1 ist immer Primzahl
    for(i=2; i < n; i++) //Feld mit Einsen fuellen
    a[i]=1;
    for(i=2; i <= n/2 ;i++)
    { //Kontrolle, ob Zahl oder Viel-
    if(a[i]==1) //faches schon geprueft wurde
    for( j=2; j < n/i ; j++) //Kontrolle, ob Zahl Primzahl,
    a[i*j]=0; //wenn nicht, 0 setzen
    }
    for(i=1; i < n ; i++) //Ausgabe: wenn Element 1, Index
    if(a[i]==1) //als Primzahl ausgeben
    System.out.print(i+" ");

    }
    }
    dabei soll man noch die anzahl der gefundenen primzahlen ausgeben,
    dabei scheitere ich leider noch....
    jetzt habe ich da noch ein Porblem ich kann nur die primzahlen bis 997 bestimmen gibt es vielleicht noch einen besseren weg um primzahlen bis z.b. 100000 zu bestimmen??
    wäre super danke

  • oder hat vielleicht jemadn eine bessere lösung für mein Problem...
    leider finde ich keinen programmierweg mit dem ich die anzahl bestimmen kann
    grüßle

  • Hier etwas das ich schon länger in C# geschrieben habe.

    Bei Bedarf sind die Methoden von Int64 auf BigInteger oÄ zu erweitern/überladen (klarerweise).

    Hope it helps,
    lg,
    Patrick

    ;) Lebe wie du, wenn du stirbst, wünschen wirst gelebt zu haben (Christian F. Gellert) ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!