from math import sqrt def facteurs(n): """facteurs(n): décomposition d'un nombre entier n en facteurs premiers""" F = [] if n==1: return F # recherche de tous les facteurs 2 s'il y en a while n>=2: x,r = divmod(n,2) if r!=0: break F.append(2) n = x # recherche des facteurs 1er >2 i=3 rn = int(sqrt(n)) while i<=n: if i>rn: F.append(n) break x,r = divmod(n,i) if r==0: F.append(i) n=x rn = int(sqrt(n)) else: i += 2 return F