Hallo,
ich habe die Aufgabe bekommen, eine beliebige natürliche Zahl in deren Primfaktoren zu zerlegen, beginnend mit dem kleinsten Faktor.
Der Algorithmus soll dabei alle Primfaktoren von n ermitteln und der Reihe nach ausgeben,
beginnend mit dem kleinsten Faktor.
Ich habe mir dazu bereits Gedanken gemacht in Form eines Ablaufplans:
int n
int divisor = 2
1. Lies Wert von Zahl n ein
2. Wenn n == 1
3. Dann gib „1“ aus
4. Sonst Wenn Zahl n == 0
5. Dann gib „0“ aus
6. Sonst Wenn Zahl >1
7. Wenn Zahl mod divisor == 0
8. Dann gib divisor aus
9. Sonst divisor = divisor + 1
11. Dann Zahl = Zahl / divisor
12. Sonst gib divisor = 1 aus
13. Fertig
Ich habe nun selbst einen Denklogikfehler, da ich nicht genau weiss, wie sich der Programmcode in java bei den fett markierten Bereichen verhält.
Allerdings funktioniert dieser Algorithmus nicht (glaube ich zumindest), wenn die natürliche Zahl andere Faktoren
> 2 enthält.
Ich bin den Ablaufplan mal mit der natürlichen Zahl 3 durchgegangen:
1. Zahl n = 3
2. 3 == 1? => falsch!
4. 3 == 0?=> falsch!
6. 3 > 1? =Y> wahr!
7. 3 mod 2 == 0? => falsch!
9. divisor = 2 + 1 = 3
So und ab da, weiss ich nicht was mein Ablaufplan dann machen würde? Springt er zu Zeile 11. oder wie von mir gewollt wieder in Zeile 6.?
Wenn er in Zeile 6 springen würde, wäre der Algorithmus schon mal vom Ansatz nicht verkehrt, oder?
Ich hoffe, dass sich hier nen guter Java Programmierer findet, der mir bei meinem Problem helfen kann.
Ich selbst bin leider, wie man auch merkt, völliger Anfänger und muss mich jetzt erstmal in die Materie exakt einarbeiten.
Danke schon mal!
ich habe die Aufgabe bekommen, eine beliebige natürliche Zahl in deren Primfaktoren zu zerlegen, beginnend mit dem kleinsten Faktor.
Der Algorithmus soll dabei alle Primfaktoren von n ermitteln und der Reihe nach ausgeben,
beginnend mit dem kleinsten Faktor.
Ich habe mir dazu bereits Gedanken gemacht in Form eines Ablaufplans:
int n
int divisor = 2
1. Lies Wert von Zahl n ein
2. Wenn n == 1
3. Dann gib „1“ aus
4. Sonst Wenn Zahl n == 0
5. Dann gib „0“ aus
6. Sonst Wenn Zahl >1
7. Wenn Zahl mod divisor == 0
8. Dann gib divisor aus
9. Sonst divisor = divisor + 1
11. Dann Zahl = Zahl / divisor
12. Sonst gib divisor = 1 aus
13. Fertig
Ich habe nun selbst einen Denklogikfehler, da ich nicht genau weiss, wie sich der Programmcode in java bei den fett markierten Bereichen verhält.
Allerdings funktioniert dieser Algorithmus nicht (glaube ich zumindest), wenn die natürliche Zahl andere Faktoren
> 2 enthält.
Ich bin den Ablaufplan mal mit der natürlichen Zahl 3 durchgegangen:
1. Zahl n = 3
2. 3 == 1? => falsch!
4. 3 == 0?=> falsch!
6. 3 > 1? =Y> wahr!
7. 3 mod 2 == 0? => falsch!
9. divisor = 2 + 1 = 3
So und ab da, weiss ich nicht was mein Ablaufplan dann machen würde? Springt er zu Zeile 11. oder wie von mir gewollt wieder in Zeile 6.?
Wenn er in Zeile 6 springen würde, wäre der Algorithmus schon mal vom Ansatz nicht verkehrt, oder?
Ich hoffe, dass sich hier nen guter Java Programmierer findet, der mir bei meinem Problem helfen kann.
Ich selbst bin leider, wie man auch merkt, völliger Anfänger und muss mich jetzt erstmal in die Materie exakt einarbeiten.
Danke schon mal!
Zuletzt bearbeitet: