#  Donne la nature du quotient de a par b et sa séquence périodique s'il est non décimal

def decimal(a,b):
    quotient=str(a//b)  # la partie entière du quotient
    reste=a%b           # le premier reste
    decimal=0           # le nombre est un décimal par défaut
    if reste!=0: 
        restes=[reste]         # on va mettre dans cette liste tous les restes obtenus
        quotient+=","          # le quotient s'allonge avec une partie décimale non nulle
        longueurQ=len(quotient)# on enregistre la longueur de la partie entière avec virgule
        while decimal==0 :
            quotient+=str(reste*10//b) # on ajoute un chiffre au quotient
            reste=(reste*10)%b         # on recalcule le reste
            if reste==0 : break        # le nombre est décimal, la division s'arrête
            if reste in restes :       # si le reste a déjà été obtenu on arrête la division
                rang=restes.index(reste)          # rang du reste déjà obtenu dans la liste
                sequence=quotient[longueurQ+rang:]# extraction de la séquence périodique
                quotient+="..."
                print("Séquence périodique de longueur "+str(len(sequence))+" : "+sequence)
                decimal=1                        # le nombre est un rationnel non décimal
            else : restes.append(reste)# sinon on place le reste obtenur dans la liste
    return quotient,decimal

num,denom=1,700 #2021,2022
q,i=decimal(num,denom)
nature=["décimal","rationnel non décimal"]
print(num,"/",denom,"est un nombre "+nature[i],":",q)







