[Java] Problem mit Primfaktorzerlegung

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von klaiser, 8. Oktober 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. Oktober 2009
    Problem mit Primfaktorzerlegung

    Moin RR,

    ich habe ein Problem mit der Primfaktorzerlegung.

    Meine Ansätze sind immer gescheitert, einfach deshalb, weil ich den Code nicht realisiert bekomme.

    Meine Überlegungen waren:

    bsp. Primfaktoren bis 10:
    2, 3, 4, 5, 6, 7, 8, 9, 10 -> Alle Zahlen durch 2 teilen wenn kein Rest raus kommt "entfernen".
    Speichere 2.

    3, 5, 7, 9 -> erste Zahl: 3 durch alle restlichen Zahlen teilen.
    Speichere 3.

    5, 7 -> erste Zahl 5 durch restlichen Zahlen teilen.
    Speichere 5

    Speichere 7.

    Resultat 2, 3, 5, 7

    Jetzt kann ich die 10 durch 2 teilen:
    10 / 2 = 5
    weiteres teilen nicht möglich versuche mit 3, 5, 7

    mit 5 möglich

    Ausgabe:
    10 = 2*5

    weitere Beispiele:
    28 = 2*2*7
    40 = 2*2*2*2*5
    1080664428 = 2*2*3*90055369

    Ich hoffe dieses Grundkonzept ist nicht zu verwirrend. Mein Problem das ich dies einfach nicht realisieren kann da jede Zahl die eingegeben wird in Primfaktoren zerlegt werden soll. z.B. "555555555" oder "57463527". (Unmöglich im Array zu speichern)

    Meine Frage: Geht der Algorithmus ohne ein Array (um die Primzahlen zu speichern) wie wäre das zu realisieren. Gibt es eine einfachere Variante außer mein Konzept? (Gibt es bestimmt)

    Ich arbeite mit Java.
     
  2. 8. Oktober 2009
    AW: Problem mit Primfaktorzerlegung

    Java: Primfaktorzerlegung » Solvium.de

    1.Result bei google!!
    Und ich denk mal da steht alles drinn was du dafür brauchst!
     
  3. 8. Oktober 2009
    AW: Problem mit Primfaktorzerlegung

    Das hatte ich auch schon gefunden. Meine Frage war nur ob das ohne Array überhaupt möglich wäre. Trotzdem Danke für deinen Post.
     
  4. 8. Oktober 2009
    AW: Problem mit Primfaktorzerlegung

    meinst du das Array tmp? Dies beinhaltet ja nur das Ergebnis (Bei deinem Beispiel mit der 28 die Zahlen 2,2 und 7). Hier kann man natürlich auch was anderes als ein Array nehmen (ne ArrayList<long>, oder das Ergebniss immer an einen String anhängen).

    Deine Ausführung im ersten Post sieht ja vor die Primzahlen vorher zu bestimmen und zu merken. Dies könnte zu einem Problem werden. Primzahlen gibt es unendlich, da müsste man eine sinnvolle Begrenzung festlegen. Welcher Datentyp dann für die optimal ist wüsst ich hier auch nicht.

    Find die Lösung aus dem Link recht elegant auch wenn die For-Schleife recht heftig werden kann
     
  5. 8. Oktober 2009
    AW: Problem mit Primfaktorzerlegung

    hi,

    wenn ich das richtig verstanden habe, möchtest du eine primfaktorzerlegung durchführen.
    sprich der user gibt 48 ein, dann soll dastehen 2*2*2*2*3.

    somit brauchst du die eingegeben zahl in keinem array abzuspreichern. du musst nur schauen, was die letzte zahl ist (gerade oder ungerade).

    einfach gesagt.
    du nimmst die zahl, dividierst sie durch 2. kommt eine gleitkommzahl raus, nimmst du einfach die nächste. solange bis die ganzzahlig wird. hast du dann das ergbnis geht es wieder von vorne los.

    hoffe ich habe deine frage richtig verstanden.


    so long,
    harry
     
  6. 8. Oktober 2009
    AW: Problem mit Primfaktorzerlegung

    Das war so einfach und ich habe das nicht geschnallt. Manchmal habe ich echt merkwürdige Denkschleifen.

    Bewertungen ging an alle raus, wenn möglich! Danke.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.