Comment l'efficacité des différentes méthodes de factorisation première se compare-t-elle en Python ?

Mary-Kate Olsen
Libérer: 2024-11-14 17:07:02
original
581 Les gens l'ont consulté

How does the efficiency of different prime factorization methods compare in Python?

Python : factorisation première efficace

Question 1 :
Comprendre un programme Python existant qui calcule le plus grand facteur premier de 600851475143 et exploration d'une factorisation première alternative méthodes.

Réponse :
Le code que vous avez trouvé en ligne fonctionne efficacement en divisant à plusieurs reprises le nombre par son plus petit facteur premier jusqu'à ce qu'il atteigne le plus grand facteur premier. Bien que le nombre ne soit pas divisible par le facteur premier actuel, il continue d'incrémenter le facteur premier.

Une autre méthode consiste à utiliser une approche par force brute :

<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

Cette fonction teste chaque nombre de 2 à la racine carrée du nombre donné pour déterminer ses facteurs premiers. Cependant, cette méthode est moins efficace pour les grands nombres.

Question 2 :
Comparaison de l'efficacité des deux extraits de code fournis.

Réponse :
Le deuxième extrait de code, qui incrémente simplement un compteur, est beaucoup plus lent car il vérifie chaque entier jusqu'à une certaine valeur, alors que le premier extrait de code vérifie uniquement le plus petit facteur premier et le divise immédiatement, éliminant efficacement ce facteur.

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