import sys sys.path.append('../../../ressources') from bibV3 import * #exo 1 Q1 #oui. Le graphe possède une boucle pour le sommet G #exo 1 Q2 #non #exo 1 Q3 #Le graphe possède 3 composantes connexes : # {A},{B,C,D,G,H},{E,F} #exo 2 Q1 #exemple de chaîne élémentaire de longueur maximale : #[F,5,D,4,I,1,A,6,C,12,K] #Rq : il en existe 3 autres #exo 2 Q2 #[B,8,E,9,H,10,G,7,B] #exo 3 def sontVoisins(s1, s2): for s in listeVoisins(s1): if s == s2: return True return False def estVoisinDeTous(s,G): for t in listeSommets(G): if not sontVoisins(s,t) and s != t: return False return True #exo 4 Q1 def sommeDiviseurs(n): somme = 0 for i in range(1,n+1): if n%i == 0: somme = somme + i return somme #exo 4 Q2 print("somme des diviseurs propres de 15 =", sommeDiviseurs(15)-15) #9 donc 15 n'est pas parfait print("somme des diviseurs propres de 28 =", sommeDiviseurs(28)-28) #28 donc 28 est parfait #exo 4 Q3 def estParfait(n): return n == sommeDiviseurs(n)-n #exo 4 Q4 def prochainParfait(n): while not estParfait(n): n = n +1 return n print("le prochain nombre parfait après 28 :", prochainParfait(29)) # 496 #exo 5 def listeSommetsDeCouleur(G,c): l=[] for s in listeSommets(G): if couleurSommet(s) == c: l = l + [s] return l #exo 6 def f(n,k): c = 1 for i in range(1,k+1): c = c * (n - 1 - i) // i return c #exo 6 Q1 #i 1 2 3 #c 1 5 10 10 #exo 6 Q2 : print ("f(7,3)=",f(7,3)) #10 #exo 6 Q3 def g(n): somme = 0 for k in range(n+1): somme = somme + f(n,k) return somme