def racines_degre2(P):
    """renvoie les racines d'un polynôme de degré 2"""
    delta=int(P[1]**2-4*P[2]*P[0])
    if delta==0:
        x0=Fractions(-1,2)*P[1]/P[2]
        liste_racines=[x0.simplifie()]
        liste_str_racines=["\\dfrac{-%s}{2\\times %s}"%(pTeX(P[1]),pTeX(P[2]))]
        simplrac=[False]
    elif delta>0:
        simplrac,strx1,x1,strx2,x2=listeracines(P[2],P[1],delta,parentheses=False)
        liste_racines=[x1,x2]
        liste_str_racines=[strx1,strx2]
    else:
        simplrac=[False]
        liste_racines=liste_str_racines=[]
    return delta,simplrac,liste_racines,liste_str_racines
def factorisation_degre2(P,factorisation=True):
    #x1=x2=0
    var=P.var
    X=Polynome({1:1},var)
    delta=int(P[1]**2-4*P[2]*P[0])
    if delta<0:
        factorisation=[]
        str_racines=[]
        racines=[]
        simplrac=[False]
    elif delta==0:
        x0=Fractions(-1,2)*P[1]/P[2]
        simplrac=[False]
        racines=[x0.simplifie()]
        str_racines=["\\dfrac{-%s}{2\\times %s}"%(pTeX(P[1]),pTeX(P[2]))]


        P0="%s-%s"%(var,pTeX(racines[0]))
        factorisation=[[P0,P0]]#non simplifiée

        if 0>racines[0]:
            P0=X-racines[0]
            factorisation.append([P0,P0])
    else:#delta>0
        simplrac,strx1,x1,strx2,x2=listeracines(P[2],P[1],delta)
        if isinstance(x1,RacineDegre2):
            x1=x1.simplifie()
            x2=x2.simplifie()
        racines=[x1,x2]
        str_racines=[strx1,strx2]
        P1="%s-%s"%(var,pTeX(x1))
        P2="%s-%s"%(var,pTeX(x2))
        factorisation=[[P1,P2]]#non simplifiée
        #Peut-on simplifier les parenthèses ?
        if x1.radicande==0 and (x1.numerateur<0 or x2.numerateur<0):
            P1=(X-x1)(var)
            P2=(X-x2)(var)
            factorisation.append([P1,P2])
    return delta,simplrac,racines,str_racines,factorisation