def div(nombre_min, nombre_max):
    # on trouve a et b en valeur absolue
    a_absolu = 2
    while Arithmetique.premier(a_absolu):
        a_absolu = abs(Arithmetique.valeur_alea(nombre_min, nombre_max))
    decomposition_a_absolu = Arithmetique.factor(a_absolu)
    nbre_facteur_a_absolu = len(decomposition_a_absolu)
    decomposition_b_absolu = random.sample(decomposition_a_absolu,random.randrange(1,len(decomposition_a_absolu)))
    b_absolu = 1
    for facteur in  decomposition_b_absolu:
        b_absolu = b_absolu * facteur
    # on choisit le signe possible pour a et b
    a_possible = [-a_absolu , a_absolu]
    b_possible = [-b_absolu , b_absolu]

    if a_possible[1] < nombre_max:
        if nombre_min < a_possible[0]:
            a = a_possible[random.randrange(2)]
        else:
            a = a_possible[1]
    else:
        a = a_possible[0]

    if b_possible[1] < nombre_max:
        if nombre_min < b_possible[0]:
            b = b_possible[random.randrange(2)]
        else:
            b = b_possible[1]
    else:
        b = b_possible[0]

    return (a, b)
def div_dec(nombre_min, nombre_max):
    a = 2
    while Arithmetique.premier(a):
        a = Arithmetique.valeur_alea(nombre_min*10, nombre_max*10)

    decomposition_a = Arithmetique.factor(a)
    nbre_facteur_a = len(decomposition_a)
    
    decomposition_b = random.sample(decomposition_a,random.randrange(1,len(decomposition_a)))
    b = 1
    for facteur in  decomposition_b:
        b = b * facteur
    return (a/10.0, b/10.0)