Nombres parfaits Un nombre est parfait si il est égal à la somme de ses diviseurs propres.1 6 est un nombre parfait car les diviseurs propres de 6 sont {1,2,3} et 1+2+3=6 1. Création de la liste des diviseurs d’un nombre. Une liste ? Dans scratch, une liste permet de stocker plusieurs informations. L’avantage d’une liste est de ne pas avoir à définir à l’avance sa taille : on dit que c’est un tableau dynamique. À chaque nouvelle information, une nouvelle « cellule » est créée. On a un bloc longueur de la liste qui permet de connaître la longueur de la liste à un moment donné. On a créé ici une liste appelée diviseurs. On a des blocs « actions » pour : • Ajouter une donnée, • supprimer une donnée, • insérer une donnée, • remplacer une donnée, • montrer la liste, • cacher la liste. On a des blocs « informations » : • Nom de la liste, • élément de la liste, • longueur de la liste. On a un bloc « condition » : • 1Autre liste contient élément. que lui-même NOMBRES PARFAITS !1 On met quoi dans la liste? Un petit rappel : « b est un diviseur de a si le reste de la division de a par b est 0 ». Juste par hasard, n’y aurait il pas un bloc reste de la division ? a modulo b « stocke » la valeur du reste de la division de a par b. En résumé : • On demande le nombre dont on veut savoir s’il est parfait. Il sera donc stocké dans la variable « réponse ». • On va créer une liste qui contient tous ses diviseurs : • On va utiliser une boucle conditionnelle répéter jusque, qui contient une instruction conditionnelle : • • Condition : a modulo b = 0 • Action : ajouter le diviseur à la liste. On va avoir également besoin d’une variable temporaire que l’on va nommer temp. Cette variable va prendre les valeurs inférieures au nombre « réponse » et permettre de tester s’ils divisent le nombre « réponse ». 2. Somme des diviseurs. On va créé une variable somme qui va stocker la somme des diviseurs, c’est-à-dire la somme des éléments de la liste diviseurs. 3. Conclusion. Reste une instruction conditionnelle Si…Alors…Sinon qui va permettre de conclure. 4. Pour aller plus loin Crée la liste des nombres parfaits inférieurs à 1000. NOMBRES PARFAITS !2