W
worsel
Gast
Ich habe die Aufgabe, alle Primzahlen von 1 bis zu einem von mir festgelegten Wert n herausschreiben zu lassen. Bekannt ist diese Aufgabe unter dem Namen 'Sieb des Erathostenes'.
Ich habe den Code soweit fertig, er funktioniert wunderbar, allerdings nur bis zu einem bestimmten Wert n, der ungefähr bei dem Wert 46.500 liegt.
Wenn ich das Programm dann starte, kommt folgende Fehlermeldung:
at siebdeserathostenes.Main.main(37871
Main.java:2937879
'Main.java:29' ist übrigens klickbar und führt mich zu Zeile 30.
Hier der Code:
Die Fehlermeldung bringt bei jedem Programmstart verschiedene Zahlen raus, die alle etwa im gleichen Bereich liegen (~39000-41000), die verlinkte Programmzeile dazu bleibt jedes mal gleich.
Hat jemand eine Ahnung, warum dieser Fehler auftritt?
Das Programm läuft bis zu oben genanntem n einwandfrei...komisch
Grüße
Ich habe den Code soweit fertig, er funktioniert wunderbar, allerdings nur bis zu einem bestimmten Wert n, der ungefähr bei dem Wert 46.500 liegt.
Wenn ich das Programm dann starte, kommt folgende Fehlermeldung:
at siebdeserathostenes.Main.main(37871
Main.java:2937879
'Main.java:29' ist übrigens klickbar und führt mich zu Zeile 30.
Hier der Code:
Java:
package siebdeserathostenes;
public class Main {
public static void main(String[] args) {
int n = 46500;
int[] prime = new int[n];
boolean[] canceled;
canceled = new boolean[n+1];
long t1= System.nanoTime();
for(int i=2; i<=n; i++){
canceled[i] = false;
}
for(int i=2; i<=n; i++){
if(canceled[i]== false){
System.out.println(i);
for(int j=i*i; j <= n; j=j+i){
canceled[j]=true;
}
}
}
long t2 = System.nanoTime();
long dauer = t2-t1;
System.out.println();
System.out.println("Dauer in Nanosekunden: "+dauer);
System.out.println("Dauer in Sekunden: "+(double)dauer/1000000000);
}
}
Die Fehlermeldung bringt bei jedem Programmstart verschiedene Zahlen raus, die alle etwa im gleichen Bereich liegen (~39000-41000), die verlinkte Programmzeile dazu bleibt jedes mal gleich.
Hat jemand eine Ahnung, warum dieser Fehler auftritt?
Das Programm läuft bis zu oben genanntem n einwandfrei...komisch
Grüße