logo

Décomposition en facteurs premiers

Veuillez saisir l'entier à décomposer

Résultat

Le résultat s'affichera ci-dessous.



Sur la décomposition en facteurs premiers


La décomposition en facteurs premiers en Maths consiste à écrire un nombre entier sous la forme d'un produit de facteur premier. Ainsi, il est clair que les nombres premiers n'admettent pas de décomposition en nombres premiers.

Cet outil va vous permettre de décomposer un nombre entier en ligne et ainsi de trouver ses facteurs premiers.

Afin d'éviter un long temps d'attente, l'entier à décomposer est limité à 99999999.



Comment appliquer l'algorithme de décomposition


Pour décomposer un nombre entier N, il faudra essayer de le diviser par les nombres premier p qui sont inférieurs à la racine carrée de N.
Si l'on trouve par exemple que p le divise, alors on recommence le meme algorithme avec N/P, jusqu'à ce qu'on arrive à avoir un nombre premier.


Démontrer que la liste des nombres premiers est infinie


Tout d'abord, voici une liste de quelques nombres premiers:


2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97

Passons à la démonstration
Supposons qu'il n'existe qu'un nombre fini d'entiers premiers : p1, p2, ..., pn. Considérons l'entier N=p1 x p2 x...x pn + 1.Puisqu'il est supérieur à 1, il admet un diviseur premier. Soit pk ce diviseur. Or pk divise aussi Q = p1 x p2 x...x pn, donc doit diviser leur différence N-Q, qui est égale à 1.
C'est absurde, donc l'hypothèse est fausse.


Le code python qui permet de faire la décomposition


def prime_factors(n):
    prime = []
    d = 2
    while d*d <= n:
        while (n % d) == 0:
            prime.append(d)
            n //= d
        d += 1
    if n > 1:
       prime.append(n)
    return prime

def hashe(l):
    a=sorted(set(l), key=l.index)
    return a

def power(n,l):
    a=l.count(n)
    return a

def final(n):
    p=prime_factors(n)
    a=hashe(p)
    x=""
    for i in range(len(a)):
        x=x+(str(a[i])+'^'+'{'+str(power(a[i],p)))+'}'
        if i !=len(a)-1:
            x=x+'\\' +'times'
    return x

Nous contacter


Voulez vous nous contacter ? C'est par ici