Hallo,
ich bin überrascht wieviele verschiedene Algorithmen dazu gibt. Leider hab ich meins nicht gefunden.
Es läuft alles perfekt. Nur ich möchte nicht eine Aufzählung von Primzahlen sondern ich will die Anzahl von Primzahlen bis n.
Danke
ich bin überrascht wieviele verschiedene Algorithmen dazu gibt. Leider hab ich meins nicht gefunden.
Code:
package ads_üb1;
import java.util.Scanner;
/*
* Sieb des Erathostenes
*/
public class Sieb {
public static void main(String[] args) {
int n;
Scanner sc= new Scanner(System.in);
System.out.print("Primzahlen bis: ");
n = sc.nextInt();
//
boolean[] primz = new boolean[n]; //Arrays für "n" erstellen.
try{
primz[0] = false; // Die Zahl 0 und 1 zählt nicht
primz[1] = false; // wir fangen erst bei der 2 an.
}catch(Exception ex){
System.out.println("Die Zahl muss größer als 2 sein.");
}
//Alle Zahlen von 2 bis n werden aufgezählt.
for (int i=1; i<n; i++){
primz[i]=true;
}
for(int i=2; i<= n; i++){
// Streiche alle Vielfachen von 2 weg
if(primz[i-1]){
System.out.println(i);
for(int j= i*i; j<=n; j=j+i){
primz[j-1]=false;
}
}
}
}
}
Es läuft alles perfekt. Nur ich möchte nicht eine Aufzählung von Primzahlen sondern ich will die Anzahl von Primzahlen bis n.
Danke