[Python 3] Décomposition des facteurs premiers en 14 lignes

Étonnamment, il n'y a pas de factorisation principale dans la bibliothèque Python standard. Je l'ai écrit simplement en utilisant Counter. En 14 lignes à partir du haut.

prime_factorization.py


from math import sqrt
from collections import Counter

def prime_factorization(n):
    counter = Counter()
    for i in range(2, int(sqrt(n)) + 1):
        while n % i == 0:
            n //= i
            counter[i] += 1

    if n != 1:
        counter[n] += 1

    return list(counter.items())

def prime_factors(n):
    return set(map(lambda x: x[0], prime_factorization(n)))

if __name__ == '__main__':
    # 2020 = 2^2 * 5^1 * 101^1
    print(prime_factorization(2020)) # => [(2, 2), (5, 1), (101, 1)]
    print(prime_factors(2020)) # => {2, 101, 5}
    #Si 1 renvoie une liste de
    print(prime_factorization(1)) # => []

référence

Factorisation prime rapide avec Python-pour les professionnels de la concurrence-

Recommended Posts

[Python 3] Décomposition des facteurs premiers en 14 lignes
Nombre premier en Python
Premier nombre 2 en Python
Décomposition en facteurs premiers ver.1 des entiers entrés en Python
Décomposition en facteurs premiers ver.2 des entiers entrés en Python
Segfo python en 2 lignes
Installation de Python en 2 lignes @Windows
Générateur principal infini en Python3
Segfo python en trois lignes
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Projet Euler # 3 "Maximum Prime Factors" en Python
Méta-analyse en Python
Unittest en Python
Graphique à lignes pliées et ligne d'échelle en python
Époque en Python
Discord en Python
Allemand en Python
Projet Euler # 7 "1000 1er nombre premier" en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
J'ai cherché un nombre premier avec python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
Dessiner des lignes de contour qui apparaissent dans les manuels (Python)
Lire un fichier contenant des lignes brouillées en Python
Projet Euler # 10 "somme des nombres premiers" en Python
Énumération des nombres premiers et jugement des nombres premiers en Python
Trouvez des nombres premiers avec un code aussi court que possible en Python