Lade...
 

CX_INTEGER::PrimeFactors

CX_INTEGER::PrimeFactors

223987
Beschreibung:

Zerlegt die Ganzzahl in ihre Primfaktoren. Die Primfaktoren werden in einem Vektor in aufsteigender Reihenfolge sortiert zurückgegeben.
Der zurückgegebene Vektor hat immer die Eigenschaft, dass das Produkt aller Elemente wieder die Ausgangszahl liefert. Um dies sicherzustellen wird für negative Zahlen der Faktor -1 (genaugenommen kein Primfaktor) als erstes Element zusätzlich im Vektor  zurückgegeben.

Hinweis: Aufgrund technischer Einschränkungen funktioniert die Primfaktorzerlegung aktuell für den maximalen INTEGER-Wert 2.147.483.647 nicht korrekt. Es wird ein leerer Vektor zurückgegeben.

Hinweis zur Performance:

Diese Methode verwendet zur Primfaktorzerlegung eine Primfaktortabelle für alle Zahlen bis 65.535. Die Primfaktorzerlegung für Zahlen ≤ 65.535 läuft entsprechend extrem schnell. Für größere Zahlen, die kleine Primfaktoren enthalten läuft sie ebenfalls sehr schnell ab. Rechnerisch aufwendig ist die Zerlegung für Primzahlen > 65.535, da hierfür 6.542 Divisionen durchgeführt werden müssen.

Code-Beispiel:
1 Call(PrimeFactors) // -> [] 2 Call(PrimeFactors) // -> [2] 42 Call(PrimeFactors) // -> [2,3,7] 3600 Call(PrimeFactors) // -> [2,2,2,2,3,3,5,5] (-1) Call(PrimeFactors) // -> [-1] (-42) Call(PrimeFactors) // -> [-1,2,3,7]

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(IN) Top  CX_INTEGER   Die zu zerlegende Zahl
Stack(OUT) Top  VECTOR  Die Primfaktoren der Größe nach sortiert
Funktionsaufruf: Call(PrimeFactors)