trixi28788 Geschrieben 10. November 2008 Geschrieben 10. November 2008 Hey, ich muss einen Pseudocode schreiben in dem Primfaktoren bei der Primfaktorzerlegung einer nat¨urlichen Zahl n > 1 zu Potenzen zusammengefasst werden sollen. ich soll folgendes als Grundlage nehmen: findPrimeFactors( n ) Input: Nat¨urliche Zahl n mit n > 1 Output: Primfaktoren von n, durch Leerzeichen getrennt rest := n divisor := 2 factors :=â€â€ WHILE rest > 1 DO IF rest MOD divisor = 0 THEN rest := rest/divisor f¨uge hinten an factors den divisor und ein Leerzeichen an ELSE divisor := findPrime(divisor) ENDIF ENDWHILE RETURN factors :confused: doch leider habe ich keine ahnung wie ich das machen soll. könnte mir jemand helfen? danke im vorraus...
Klotzkopp Geschrieben 10. November 2008 Geschrieben 10. November 2008 Du musst schon konkrete Fragen stellen. Deine Hausaufgaben wird hier niemand für dich machen. Ist dir klar, welche Darstellung der gegebene Pseudocode erzeugt, und wie er sich von der gewünschten Darstellung unterscheidet?
trixi28788 Geschrieben 10. November 2008 Autor Geschrieben 10. November 2008 ja weis schon das keiner meine hausaufgaben macht. das blöde ist blos das ich letzte woche krank war und nicht in der vorlesung war und mit dem skript kann ich nichts anfángen so wirklich. wie man überprüft ob es eine primzahl ist weiß ich. und im groben verstehe ich auch den vorgegebenen pseudoceode. Also grob gesagt die einzelenen Schritte verstehe ich, aber ich kann das nicht in nen kompletten code schreiben. normalerweise schaffe ich immer mich alleine durch die aufgaben durchzuhauen aber diesmal weis ich keinen wirklichen anfang. bitte bitte hilf mir
trixi28788 Geschrieben 10. November 2008 Autor Geschrieben 10. November 2008 achja ich weis auch wie ich eine primfaktorzerlegung in natürliche zahlen schreibt aber das mit den potenzen bereitet mir probleme
Klotzkopp Geschrieben 10. November 2008 Geschrieben 10. November 2008 Na dann beantworte doch mal meine Frage. Weißt du, was dieser Code ausgibst, wenn du ihn beispielsweise mit n = 30 aufrufst?
trixi28788 Geschrieben 10. November 2008 Autor Geschrieben 10. November 2008 ok also wie gesagt grob verstehe ich ihn. also wenn n =30 ist ist der rest =30. dann wird eine while schleife begonnen. solange der rest also 30 größer 1 ist tue: dann kommt wenn der rest / divisor also 30/2 =0 ist soller rest durch divisor ausgeben und hinten an den factor den divisor ranfügen und nen leerzeichen . das ist nicht der fall also gehts in den else zweig rein. und da weis ich nicht genau. soll das heißen das der divisor eine primzahl ist? wenn ich das weis ist klar wie es weiter geht. dann gehts immer solange weiter bis die while schleife abgebrochen wird.
Klotzkopp Geschrieben 10. November 2008 Geschrieben 10. November 2008 nd da weis ich nicht genau. soll das heißen das der divisor eine primzahl ist? Du meinst "divisor := findPrime(divisor)"? Ich nehme mal schwer an, dass findPrime eine Funktion ist, die die nächstgrößere Primzahl zurückgibt. Wenn du die Funktion aber zum Beispiel mit 360 aufrufst, erhältst du 2 2 2 3 3 5 Du sollst nun ein Programm schreiben, dass folgendes ausgibt (wenn ich die Aufgabe richtig verstanden habe): 2^3 3^2 5^1 Sprich: Du sollst mehrfach auftretende Primfaktoren zu Potenzen zusammenfassen.
trixi28788 Geschrieben 10. November 2008 Autor Geschrieben 10. November 2008 ja geau. reicht es dann einfach wenn ich die dann zusammen zählen lasse oder wie? und zum schluss muss ich die dann ausgeben lassen. aber dann brauch ich ja voll viele variablen wenn ich jez kein denkfehler habe. ach man so nen ****** ey
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden