Peut-on trouver des nombres premiers, utilisés ensemble, lors de la décomposition du nombre résultant ?

Peut-on trouver des nombres premiers, utilisés ensemble, lors de la décomposition du nombre résultant ?

8 octobre 2021 · 1 min. de lecture
quora Quora

Réponse publiée sur Quora

Je ne suis pas sur de comprendre la question, mais un algo de factorisation doit essayer plusieurs divisions successives par un diviseur premier trouvé pour définir sa puissance. Par exemple ma fonction Goulib.math2.prime_factors fait ça dans la boucle des lignes 9 à 11 :

def prime_factors(num, start=2):
	'''generates all prime factors (ordered) of num'''
	for p in primes_gen(start):
		if num==1: break
		if is_prime(num): #because it's fast
			yield num
			break
		if p>num: break
		while num % p==0:
			yield p
			num=num//p

Ensuite

def factorize(n):
	return itertools2.compress(prime_factors(n))

regroupe les termes consécutifs pour faire par exemple

>>>factorize(786456)
[(2,3), (3,3), (11,1), (331,1)]

qui signifie $786456=2^3*3^3*11*331$

Dr. Goulu
Auteurs
Dr. Goulu (il/lui)
Ingénieur à la retraite, toujours curieux et voyageur
EPFL MS Informatique 1988, PhD automatique 1994, eMBA Management of Technology
comments powered by Disqus