diff --git a/perfect_number/main.py b/perfect_number/main.py new file mode 100644 index 0000000..f663a4d --- /dev/null +++ b/perfect_number/main.py @@ -0,0 +1,11 @@ +import math +def find_diviseur(number): + diviseurs = [] + limit = int(number/2) + for i in range(1,limit): + if number %i == 0: + diviseurs.append(i) + return diviseurs + +if __name__ == "__main__": + print(find_diviseur(15)) diff --git a/trees/AB/arbre.py b/trees/AB/arbre.py new file mode 100644 index 0000000..74b5e20 --- /dev/null +++ b/trees/AB/arbre.py @@ -0,0 +1,40 @@ +class Arbre_Binaire(object): + def __init__(self,racine = None, sag = None,sad = None) -> None: + self.racine = racine + self.ss_arbre_gauche = sag + self.ss_arbre_droit = sad + return None + def est_vide(self): + return self.racine is None + + def taille(self): + if self.est_vide(): + return 1 + else: + taille_gauche = self.ss_arbre_gauche.taille() if self.ss_arbre_gauche else 0 + taille_droite = self.ss_arbre_droit.taille() if self.ss_arbre_droit else 0 + + return 1+taille_gauche+taille_droite + + def hauteur(self): + if self.est_vide(): + return 0 + else: + profondeur_gauche = self.ss_arbre_gauche.hauteur() if self.ss_arbre_gauche else 0 + profondeur_droite = self.ss_arbre_droit.hauteur() if self.ss_arbre_droit else 0 + return 1+max(profondeur_droite,profondeur_gauche) +def affichage(arbre): + pass + if arbre.est_vide(): + return ([]) + else: + racine = arbre.racine + prefixe = arbre.ss_arbre_gauche + suffixe = arbre.ss_arbre_droit + #todo + + +if __name__ == "__main__": + arbre = Arbre_Binaire(1, Arbre_Binaire(2), Arbre_Binaire(3)) + print("taille arbre :", arbre.taille()) + print("hauteur arbre :", arbre.hauteur()) diff --git a/trees/genealogie/genealogie.py b/trees/genealogie/genealogie.py index dab3710..76af43e 100644 --- a/trees/genealogie/genealogie.py +++ b/trees/genealogie/genealogie.py @@ -110,21 +110,21 @@ class Arbre(object): if not (self.est_vide()): if self.racine == valeur: return self - resultat = Arbre() - for ss_arbre in self.ss_arbres: - ss_arbre = Arbre(racine=None, ss_arbres=ss_arbre) - resultat = ss_arbre.rechercher(valeur) - if not (resultat == None): - break - return resultat + resultat = Arbre() + for ss_arbre in self.ss_arbres: + ss_arbre = Arbre(racine=None, ss_arbres=ss_arbre) + resultat = ss_arbre.rechercher(valeur) + if not (resultat == None): + break + return resultat + return Arbre() def ajouter(self,elt): if self.est_vide(): return Arbre(racine=elt) else: return Arbre(elt,self) - def enlever(self): + def enlever(self,elt): pass def display(self): pass -