Comment trouver efficacement les facteurs d'un nombre en Python 2.7 ?

Barbara Streisand
Libérer: 2024-10-30 21:05:03
original
159 Les gens l'ont consulté

 How to Efficiently Find the Factors of a Number in Python 2.7?

Méthode optimale pour la décomposition factorielle en Python

Trouver efficacement les facteurs d'un nombre est crucial pour divers calculs mathématiques. Dans Python 2.7, une approche optimale pour cette tâche utilise l'extrait suivant :

<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 analyse le nombre n et identifie tous ses facteurs (y compris lui-même). La fonction renvoie les facteurs sous forme d'ensemble, éliminant tous les doublons.

L'efficacité de cette approche vient du fait qu'elle recherche uniquement les facteurs jusqu'à la racine carrée de n. Cette optimisation est possible car tout facteur supérieur à la racine carrée aurait une contrepartie plus petite, ce qui rendrait redondante la recherche des deux.

La structure du code comprend une compréhension génératrice qui produit des paires de facteurs potentielles. Si un nombre i divise n de manière égale, alors i et n // i sont des facteurs. La fonction réduire() combine ces paires en une seule liste. Enfin, la fonction set() supprime les doublons, garantissant que chaque facteur n'apparaît qu'une seule fois dans le résultat renvoyé.

Cette méthode offre une solution efficace pour trouver les facteurs d'un nombre en Python, en gérant efficacement les grandes et les petites valeurs. .

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!