Was ist der beste Ansatz zur Berechnung des größten Primfaktors einer Zahl?
Ich denke, das effizienteste wäre das Folgende:
- Finden Sie die niedrigste Primzahl, die sich sauber teilt
- Überprüfen Sie, ob das Ergebnis der Teilung prim ist
- Wenn nicht, finden Sie den nächstniedrigeren
- Gehe zu 2.
Ich gehe davon aus, dass es einfacher ist, die kleinen Primfaktoren zu berechnen. Ist das ungefähr richtig? Welche anderen Ansätze sollte ich prüfen?
Bearbeiten: Ich habe jetzt erkannt, dass mein Ansatz zwecklos ist, wenn mehr als 2 Primfaktoren im Spiel sind, da Schritt 2 fehlschlägt, wenn das Ergebnis ein Produkt von zwei anderen Primzahlen ist, weshalb ein rekursiver Algorithmus benötigt wird.
Nochmals bearbeiten: Und jetzt habe ich festgestellt, dass dies immer noch funktioniert, da die zuletzt gefundene Primzahl die höchste sein muss. Daher würde jedes weitere Testen des Nicht-Primergebnisses aus Schritt 2 zu einer kleineren Primzahl führen.
1.
Finden Sie eine Zahl, die sich klar teilt (für i = 2 bis int (sqr (num))), 2.
dividieren Sie durch diese Zahl (num = num / i) und wiederholen Sie den 3.