Comment trouver le plus grand facteur premier d'un nombre en Python ?

Linda Hamilton
Libérer: 2024-11-07 07:49:02
original
209 Les gens l'ont consulté

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

Trouver des facteurs premiers en Python

Une tâche courante en théorie des nombres est de trouver les facteurs premiers d'un nombre. Une méthode potentielle consiste simplement à diviser le nombre par un nombre sur deux de 2 jusqu'au plancher de sa racine carrée, en vérifiant si le reste est 0. Cependant, cette approche peut être coûteuse en calcul.

Une brute plus efficace- L'algorithme de force spécifiquement destiné à trouver le plus grand facteur premier d'un nombre est présenté ci-dessous :

<code class="python">def largest_prime_factor(n):
    i = 2
    while i * i <= n:
        if n % i:
            i += 1
        else:
            n //= i
    return n
Copier après la connexion

Cet algorithme fonctionne en itérant sur tous les nombres jusqu'à la racine carrée du nombre donné. Pour chaque nombre, il vérifie si le nombre est un facteur du nombre donné et divise le nombre par le facteur si c'est le cas. L'algorithme continue jusqu'à ce que le nombre ne soit plus divisible par aucun des nombres de la plage et que le nombre restant soit le plus grand facteur premier.

<code class="python">largest_prime_factor(600851475143)
# Output: 6857
Copier après la connexion

Alternativement, pour trouver tous les facteurs premiers d'un nombre :

<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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!