Wie finde ich den größten Primfaktor einer Zahl in Python?

Linda Hamilton
Freigeben: 2024-11-07 07:49:02
Original
281 Leute haben es durchsucht

How to Find the Largest Prime Factor of a Number in Python?

Primfaktoren in Python finden

Eine häufige Aufgabe in der Zahlentheorie besteht darin, die Primfaktoren einer Zahl zu finden. Eine mögliche Methode besteht darin, die Zahl einfach durch jede zweite Zahl von 2 bis zum Boden ihrer Quadratwurzel zu dividieren und zu prüfen, ob der Rest 0 ist. Allerdings kann dieser Ansatz rechenintensiv sein.

Eine effizientere Brute- Nachfolgend wird ein Force-Algorithmus speziell zum Finden des größten Primfaktors einer Zahl vorgestellt:

<code class="python">def largest_prime_factor(n):
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
    return n
Nach dem Login kopieren

Dieser Algorithmus iteriert durch alle Zahlen bis zur Quadratwurzel der gegebenen Zahl. Für jede Zahl wird geprüft, ob die Zahl ein Faktor der angegebenen Zahl ist, und die Zahl wird durch den Faktor dividiert, wenn dies der Fall ist. Der Algorithmus wird fortgesetzt, bis die Zahl nicht mehr durch eine der Zahlen im Bereich teilbar ist und die verbleibende Zahl der größte Primfaktor ist.

<code class="python">largest_prime_factor(600851475143)
# Output: 6857
Nach dem Login kopieren

Alternativ zum Finden aller Primfaktoren einer Zahl:

<code class="python">def prime_factors(n):
    i = 2
    factors = []
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
            factors.append(i)
    if n > 1:
        factors.append(n)
    return factors</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie finde ich den größten Primfaktor einer Zahl in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage