CX_INTEGER::PrimeFactors
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 | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(IN) | Top | CX_INTEGER | Die zu zerlegende Zahl |
Stack(OUT) | Top | VECTOR |
Die Primfaktoren der Größe nach sortiert |