#Exercice n°1

acc=0
for i in range(1,100):
    for j in range(1,100):
        acc+=i/j
print(acc)

def commun(L1,L2):
    L=[]
    for i in L1:
        for j in L2:
            if i==j and i not in L:
                L.append(i)
    return(L)

#Exercice n°2

def ordre1(L):
    n=len(L)
    for j in range(1,n):
        trier=True
        for i in range(0,n-j):
            if len(L[i])>len(L[i+1]):
                L[i],L[i+1]=L[i+1],L[i]
                trier=False
        if trier:
            break


def voyelle(chaine):
    dico={'a':0,'e':0,'i':0,'o':0,'u':0,'y':0,'A':0,'E':0,'I':0,'O':0,'U':0,'Y':0}
    compt=0
    for car in chaine:
        if car in dico:
            dico[car]=dico[car]+1
    for car in dico:
        compt=compt+dico[car]
    return(compt)

def ordre2(L):
    n=len(L)
    for j in range(1,n):
        trier=True
        for i in range(0,n-j):
            if voyelle(L[i])>voyelle(L[i+1]):
                L[i],L[i+1]=L[i+1],L[i]
                trier=False
        if trier:
            break

def ordre3(L):
    n=len(L)
    for j in range(1,n):
        trier=True
        for i in range(0,n-j):
            k=0
            while L[i][k]==L[i+1][k] and k<min(len(L[i])-1,len(L[i+1])-1):
                k=k+1
            if L[i][k]>L[i+1][k]:
                L[i],L[i+1]=L[i+1],L[i]
                trier=False
            if k==min(len(L[i])-1,len(L[i+1])-1):
                if len(L[i])>len(L[i+1]):
                    L[i],L[i+1]=L[i+1],L[i]
                    trier=False
        if trier:
            break

#Exercice n°3
clavier={'2':['a','b','c'],'3':['d','e','f'],'4':['g','h','i'],'5':['j','k','l'],'6':['m','n','o'],'7':['p','q','r','s'],'8':['t','u','v'],'9':['w','x','y','z']}

def decodage(code):
    for c1 in clavier[code[0]]:
        for c2 in clavier[code[1]]:
            for c3 in clavier[code[2]]:
                for c4 in clavier[code[3]]:
                    for c5 in clavier[code[4]]:
                        print(c1+c2+c3+c4+c5)


#Exercie n°4
def distance2(point):
    x,y=point
    return(x**2+y**2)

def compare(p1,p2):
    d1=distance2(p1)
    d2=distance2(p2)
    if d1<d2:
        return(-1)
    elif d2<d1:
        return(1)
    else:
        return(0)

def tri_points(L):
    for j in range(1,len(L)):
        tri=True
        for i in range(0,len(L)-j):
            if compare(L[i],L[i+1])==1:
                L[i],L[i+1]=L[i+1],L[i]
                tri=False
        if tri:
            break

#Exercice n°5
from random import randint
from time import time

L1=[randint(1,100000) for i in range (100)]
L2=[randint(1,100000) for i in range (1000)]
L3=[randint(1,100000) for i in range (10000)]

def tri_bulles(L):
    j=len(L)-1
    while j>0:
        tri=True
        for i in range(0,j):
            if L[i]>L[i+1]:
                L[i],L[i+1]=L[i+1],L[i]
                tri=False
        j=j-1
        if tri:
            j=0

top=time()
#tri_bulles(L1)
L1.sort()
print(time()-top)

top=time()
#tri_bulles(L2)
L2.sort()
print(time()-top)

top=time()
#tri_bulles(L3)
L3.sort()
print(time()-top)










