Maison > développement back-end > Tutoriel Python > Comment puis-je trouver efficacement tous les facteurs d'un nombre en Python ?

Comment puis-je trouver efficacement tous les facteurs d'un nombre en Python ?

DDD
Libérer: 2024-10-29 19:58:02
original
332 Les gens l'ont consulté

How Can I Find All Factors of a Number Efficiently in Python?

Trouver efficacement les facteurs d'un nombre en Python

En Python, trouver efficacement tous les facteurs d'un nombre est essentiel pour résoudre divers problèmes mathématiques et problèmes algorithmiques. Une approche courante mentionnée dans une enquête précédente consiste à créer un algorithme, mais son efficacité pour de grands nombres peut être limitée.

Une solution très efficace consiste à utiliser les fonctions intégrées de Python et la compréhension des listes. Le code Python suivant démontre un algorithme rapide pour trouver tous les facteurs d'un nombre n :

<code class="python">from functools import reduce

def factors(n):
    return set(reduce(
        list.__add__,
        ([i, n//i] for i in range(1, int(n**0.5) + 1) if n % i == 0)))</code>
Copier après la connexion

Ce code exploite la fonction de réduction de Python pour concaténer les listes générées par une compréhension de liste. La compréhension de liste parcourt les entiers de 1 à la racine carrée de n, et pour chaque i, elle génère une paire [i, n//i] si n est uniformément divisible par i. L'utilisation de la racine carrée comme limite supérieure est cruciale car elle garantit que tous les facteurs sont pris en compte.

Enfin, la fonction set() est utilisée pour supprimer tous les facteurs dupliqués, qui ne se produisent que pour les carrés parfaits. En conséquence, la fonction de facteurs renvoie efficacement un ensemble contenant tous les facteurs du nombre d'entrée n. Cette approche est nettement plus rapide que les algorithmes exhaustifs, ce qui la rend idéale pour gérer de grands nombres.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal