Le résultat a=bq +rde la division euclidienne est unique : si on a à la fois a=bq +ret a=bq′+r′
avec 0≤r, r′< b, alors q=q′et r=r′.
On sait tous que parfois des divisions ne « tombent pas juste », car il y a un reste non nul. Le cas où
elles « tombent juste » est susamment intéressant pour mériter un nom :
Dénition : diviseur
On dit que a̸= 0 est un multiple de b, et que best un diviseur de a, lorsqu’on peut écrire a=bx,
où xest un entier. Ceci signie que la division de apar bproduit un reste nul.
Par dénition, un nombre est toujours multiple de 1 et de lui-même. On dit que ce sont des diviseurs
triviaux. Les autres sont donc, logiquement, non-triviaux. Quand on parle des diviseurs d’un nombre, on
écarte souvent les diviseurs triviaux parce qu’ils ne sont pas intéressants.
1.3 Nombres premiers et factorisation
Imaginons qu’on nous fournisse un nombre. On pourrait se demander quels sont ses diviseurs ? Il est
facile de déterminer que le nombre 42 est divisible par 2, 3, 7, 14 et 21. Par contre, le nombre 43 n’a
aucun diviseur (non-trivial).
Dénition : nombre premier
Un nombre qui n’a pas de diviseurs (autres que 1 et lui-même) est un nombre premier. Un nombre
qui n’est pas premier est composite.
Les nombres premiers jouissent d’un status particulier, car ce sont des « briques de base » à partir
desquelles on peut fabriquer tous les autres nombres.
Théorème 1 (Théorème fondamental de l’arithmétique).Tout nombre entier npeut s’écrire de manière
unique comme un produit de nombres premiers :
n=pα1
1pα2
2...pαk
k,
où les pisont des nombres premiers et les exposants αisont des entiers.
Démonstration
L’existence de cette décomposition est facile à démontrer par récurrence sur n. Si n= 1, alors n
n’est le produit de rien du tout et c’est réglé (la décomposition est vide, k= 0). Sinon, si n > 2,
alors de deux choses l’une :
— Soit nest lui-même premier, et donc la décomposition qui va bien est déjà fournie (p1=
1, α1= 1, k = 1).
— Soit nest composite, c’est-à-dire qu’on peut écrire n=kℓ pour deux entiers 1< k et 1< ℓ.
Par hypothèse de récurrence, ces deux entiers étant forcéments plus petits que n, on peut les
écrire comme un produit de nombres premiers. Du coup, le produit de ces deux décomposition
donne une écriture de ncomme un produit de nombres premiers uniquement.
On admet l’unicité de la décomposition.
Par exemple, on trouve :
270006104 = 231710511889
Calculer cette décomposition, c’est factoriser n(l’écrire comme un produit de facteurs). En 2017, on ne
connaît pas d’algorithme ecace pour factoriser de grands entiers. Le record actuel de factorisation (par
des universités) est de 768 bits.
Considérons l’algorithme suivant, qui est généralement désigné sous le nom de « factoring by trial divi-
sion » :
def FindDivisor(n):
for iin range(2, math.sqrt(n)):
if (n %i) == 0 :
return i
return "prime"
Tout d’abord, cet algorithme est correct : s’il renvoie un nombre alors ce nombre est clairement un
diviseur de n. De plus, s’il renvoie « prime », alors nest vraiment premier. En eet, dans ce cas-là, aucun
nombre plus petit que √nne divise n. Si nétait composite, alors il s’écrirait n=ab, et l’un des deux
nombres a, b doit être plus petit que √n.
2