Un arbre diviseur esthétiquement plaisant est une arborescence de diviseurs d’entrée n
qui, pour tout nombre composé m
, a deux nœuds enfants qui sont la paire de diviseurs la plus proche de la racine carrée de m
. Le noeud de gauche doit être le plus petit diviseur de m
et le noeud de droite doit être le plus grand diviseur de m
. Un nombre premier dans l'arborescence ne doit pas avoir de nœud enfant. Votre arbre peut être sous la forme d'un texte ou d'une image. Les règles pour la sortie de texte d'art sont les suivantes.
Règles d'espacement
Pour espacer les nœuds de l’arbre, nous appliquons les règles suivantes:
- Les nœuds situés à une profondeur donnée à partir de la racine doivent tous se trouver sur la même ligne de texte dans la sortie.
/ \ NE PAS / \ / \ / 3 2 3 2
- Pour les nœuds de gauche, la branche entrante doit se trouver en haut à droite si le nœud est un nombre à un chiffre, sinon juste au-dessus du dernier chiffre. Exemple:
/ ET / 3 720
- Pour les nœuds de droite, la branche entrante doit être en haut à gauche si le nœud est un nombre à un chiffre, sinon juste au-dessus du premier chiffre. Exemple:
\ ET \ 7 243
- Pour les branches gauche sortantes, la branche doit commencer par un espace à gauche du nombre. Exemple:
275 / 11
- Pour les branches droites sortantes, la branche doit commencer par un espace à droite du nombre. Exemple:
275 \ 25
- Deux nœuds situés au même niveau de l’arbre doivent être séparés par au moins deux espaces. Dans le même temps, deux sous-arbres situés au même niveau de l’arborescence doivent être espacés le moins possible.
Cet arbre ne fonctionne pas car les ** sous-arbres ** sont trop proches. 504 / \ / \ / \ / \ 21 24 / \. / \ / \. / \ 3 7. 4 6 . / \ / \ .2 2 2 3 Bien que cet arbre ait suffisamment d’espace entre ses branches. 504 / \ / \ / \ / \ / \ 21 ... 24 / \ ... / \ / \ ... / \ 3 7 ... 4 6 ... / \ / \ ... 2 2 2 3
- Si deux sous-arbres sont trop proches l'un de l'autre dans un arbre, vous pouvez les séparer en ajoutant une autre rangée de branches
/\
à l'arbre au-dessus des parents.
441 / \ La dernière ligne n’est pas encore renseignée et nous sommes déjà à court d’espace. 21 21 / \ / \ Ajouter une autre rangée de branches 441 / \ Presque, mais le 7 et le 3 sont trop rapprochés. / \ Une autre ligne devrait le faire. 21 21 / \ / \ 3 7 3 7 Ajouter une autre rangée de branches 441 / \ Et nous avons fini. / \ / \ 21 21 / \ / \ 3 7 3 7
Exemples
Par exemple, l’arbre diviseur de 24 ressemblera à ceci:
24
/ \
/ \
4 6
/ \ / \
2 2 2 3
4 et 6 sont la paire de diviseurs la plus proche de la racine carrée de 24. 4 est à gauche, car elle est plus petite. Sur la ligne suivante, le nombre 2 à gauche de 3, car il est plus petit.
L'arbre diviseur pour 63 devrait ressembler à:
63 and NOT like this 63
/ \ / \
7 9 3 21
/ \ / \
3 3 7 3
Dans l'arborescence incorrecte, 3 et 21 ne sont pas la paire de diviseurs la plus proche de la racine carrée de 63, et 3 et 7 ne sont pas triés correctement. Le placement de la branche sur le 21 est correct, cependant.
Pour 42, vous devriez avoir:
42 and NOT 42
/ \ / \
6 7 21 2
/ \ / \
2 3 3 7
Jetons un coup d'œil à 720. Notez qu'il nous faut cinq niveaux de branches 720
pour que les sous-arbres 24
et 30
soient correctement espacés. En outre, notez que 24
et 30
ont deux niveaux de branches parce que 4
et 6
ont des nœuds enfants qui nécessitent un espacement correct et que les nœuds enfants de 30
doivent être au même niveau que les nœuds enfants de 24
.
720
/ \
/ \
/ \
/ \
/ \
24 30
/ \ / \
/ \ / \
4 6 5 6
/ \ / \ / \
2 2 2 3 2 3
Le défi
- Votre tâche consiste à créer un arbre diviseur esthétiquement plaisant, correctement espacé
n
, dans lequeln
un entier positif est supérieur à 1. - Votre sortie peut contenir des espaces de début et de fin et des nouvelles lignes de début et de fin, mais doit autrement être conforme aux règles d'espacement données ci-dessus.
- Votre sortie est autorisée à être: du texte, une image (autres formats à ajouter, si nécessaire).
- Pour les images, assurez-vous que les nœuds de votre arborescence sont bien espacés et que les nœuds situés à la même hauteur dans l'arborescence ont la même hauteur dans l'image.
- C'est du code golf. Le plus petit nombre d'octets (ou équivalent) gagne.
Nous remercions Stewie Griffin pour avoir pensé à cette idée, ainsi que Peter Taylor, Martin Ender, Mego et Eᴀsᴀ Iʀᴋ pour leur aide dans la réécriture de la spécification. Comme d'habitude, toute suggestion ou correction est très appréciée. Bonne chance et bon golf!
Plus de cas de test:
2
4
/ \
2 2
20
/ \
4 5
/ \
2 2
323
/ \
17 19
362880
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
576 630
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
24 24 21 30
/ \ / \ / \ / \
/ \ / \ / \ / \
4 6 4 6 3 7 5 6
/ \ / \ / \ / \ / \
2 2 2 3 2 2 2 3 2 3
1286250
/ \
/ \
/ \
/ \
/ \
1050 1225
/ \ / \
/ \ / \
/ \ / \
30 35 35 35
/ \ / \ / \ / \
5 6 5 7 5 7 5 7
/ \
2 3