wir haben als aufgabe folgende aufagbenstellung bekommen:
Erstelle ein Programm, das die Primfaktorenzerlegung einer Zahl (d.h. die Darstellung der Zahl als Produkt von Primzahlen) berechnet.
Beispiel: 36=2*2*3*3
Die Primfaktorenzerlegung wird als String gespeichert. Verwende für die Zerlegung zwei ineinander geschachtelte Schleifen, und wähle jeweils geeignete Schleifen. Achte darauf, dass die Ausgabe der Primfaktoren genau der Abbildung entspricht.
und ich habe folgendes geschrieben:
aus irgendeinem grund lande ich immer in einer endlosschleife ich weiß nur nicht wieso. Was habe ich falsch gemacht? Gibt es vielleicht einen besseren lösungsansatz? Ich suche zuerst ob die eine Primzahl, und dann schaue ich ob man die zahl restlos durch die Primzahl tielen kann, ist das möglich wird getielt sonst kommt die nächste Primzahl. Ich weiß echt nicht wieso das nicht geht.
Danke, mfg Fleckdalm
Erstelle ein Programm, das die Primfaktorenzerlegung einer Zahl (d.h. die Darstellung der Zahl als Produkt von Primzahlen) berechnet.
Beispiel: 36=2*2*3*3
Die Primfaktorenzerlegung wird als String gespeichert. Verwende für die Zerlegung zwei ineinander geschachtelte Schleifen, und wähle jeweils geeignete Schleifen. Achte darauf, dass die Ausgabe der Primfaktoren genau der Abbildung entspricht.
und ich habe folgendes geschrieben:
Java:
public void berechne(){
boolean prim;
int zahl;
zahl=Integer.parseInt(JOptionPane.showInputDialog("Gib die zahl ein"));
String ausgabe=zahl+" =";
while(zahl>0){
for(int i=3;i<zahl;i++){
prim=true;
for (int x=2;x<i;x++){
if(i%x==0){
prim=false;
break;
}
}
if(prim==true){
while (zahl%i==0){
zahl/=i;
ausgabe+=i+"*";
}
}
}
}
JOptionPane.showMessageDialog(null, ausgabe);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main().berechne();
// TODO code application logic here
}
Danke, mfg Fleckdalm