
# Donne le quotient de a par b dans la base c (inférieure à 36)

def conversionBase(n,base):
    reste,quotient,num,ecriture=list(),n,n,""
    while quotient>0:
        quotient=num//base
        reste.append(num%base)
        num=quotient
    for j in range(len(reste)): ecriture=chiffre[reste[j]]+ecriture
    return ecriture
   
chiffre=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h",\
         "i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
a=int(input("Entrer le dividende (base 10) : "))
b=int(input("Entrer le diviseur (base 10) : "))
c=int(input("Entrer la base de sortie (<36) : "))

if a//b>0 : ecriture=conversionBase(a//b,c)  #la partie entière du quotient en base c
else : ecriture="0"
if a%b==0: print("Votre nombre est entier, le voici dans cette base : "+ecriture)
else :
    reste,longueur,suiteRestes,fin=a%b,0,list(),0
    ecriture+=",";
    suiteRestes.append(reste)
    while fin==0:
        reste*=c
        chiffreQuotient=reste//b
        suiteRestes.append(reste%b)
        ecriture+=chiffre[chiffreQuotient]
        if suiteRestes[-1]==0 : fin=1
        else:
            for i in range(len(suiteRestes)-1) :
                if suiteRestes[-1]==suiteRestes[i] :
                    fin=2
                    longueur=len(suiteRestes)-i-1
                    sequence=str(ecriture[-longueur:])
                    ecriture+=sequence+"..."
                else : reste=suiteRestes[-1]
    print("Voici le développement illimité du quotient : "+ecriture)
    if fin==2 : print("Votre nombre a une écriture décimale illimitée périodique\
 de période "+str(longueur)+", la séquence qui se répète est "+sequence)
    else : print("Votre nombre a une écriture finie en base "+str(c)+" : "+ecriture) 









