PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfache Primzahlen Ausgabe in Java



Moe777
17.01.2009, 16:03
Ich bin gerade am lernen auf die Informatik Klausur und hab mich an eine Übungsaufgabe gewangt. Allerdings will die nicht ganz wie ich will xD
Ausgeben soll das Programm eigentlich die Primzahlen bis 20, bisher bekomme ich aber alle Zahlen ausgegeben und kann den Logikfehler nicht finden...

public class Primzahlen
{static boolean x=false;
public static void main(String[] Args){
System.out.println("Anfang");
for (int a=1; a<20; a++){
for(int b=2; b==a;b++){
if(a!=b){
if(a%b==0){
x=true;}
}

}
if(x!=true){System.out.println(a);}
x=false;
}
}
}

Das die 2 noch fehlt weis ich, das mach ich dann aber erst wenn der Rest läuft ;)

Rolus
17.01.2009, 16:20
for(int b=2; b==a;b++){
Die Bedingung ist so nicht sinnvoll. b wird nur erhöht, wenn es gleich a ist. Es muss aber erhöht werden, solange es kleiner als a ist.

freundliche Grüße, Rolus

Moe777
17.01.2009, 16:35
Achso, ja..
Ich hatte im Kopf das dieser Teil angibt ab wann nichtmehr erhöht werden darf. Jetzt klappt es super, danke

Edit: Wens interessiert:
[code]
static int bis;
// Eingabestrom
static InputStreamReader input = new InputStreamReader(System.in);
// Eingabepuffer
static BufferedReader keyboardInput = new BufferedReader(input);
public static void main(String[] Args)throws IOException{
System.out.println("Bis zu welcher Zahl sollen alle Primzahlen angezeigt werden?");
String Eingabe=keyboardInput.readLine();
try{bis=Integer.valueOf(Eingabe);}
catch(NumberFormatException e){System.out.println("Bitte geben sie eine Zahl ein!");}
for (int a=1; a<bis; a++){
for(int b=2; b<a;b++){
if(a%b==0){
x=true;}
}
if(x!=true){System.out.println(a);}
x=false;
}
}
}
[code]