Intro
Quelque chose avec lequel j'ai joué en mathématiques récréatives a été la construction d'une table de diviseurs pour comparer / contraster visuellement les diviseurs premiers d'un ensemble de nombres. L'ensemble des numéros d'entrée se trouve en haut sous forme d'étiquettes de colonne, les diviseurs principaux sont à gauche sous forme d'étiquettes de ligne, et une marque indique où les deux s'alignent.
Par exemple, pour l'entrée, 6, 9, 14, 22
une table similaire à la suivante serait construite:
6 9 14 22
2 * * *
3 * *
7 *
11 *
En effet, 6
a des diviseurs premiers de 2
et 3
, 9
a des diviseurs premiers de 3
, et ainsi de suite.
Construction
- Le tableau est construit de telle sorte que les numéros d'entrée forment des étiquettes de colonne séparées par des espaces et dans l'ordre croissant (vous pouvez supposer qu'ils sont pré-triés), et les diviseurs premiers sont répertoriés sur la gauche dans l'ordre croissant un par ligne formant la ligne Étiquettes.
- Notez que les espaces de tête sur les diviseurs premiers et les nombres d'entrée peuvent être requis si les nombres sont de longueurs différentes, de sorte que toutes les colonnes ont la même largeur et s'alignent de manière appropriée.
- Chaque diviseur est représenté par un seul
*
(ou un autre caractère ASCII approprié de votre choix, tant que le même caractère est utilisé pour toutes les occurrences). - Les diviseurs multiples sont ignorés (par exemple,
3 x 3 = 9
mais il n'y en a qu'un*
pour cette intersection). - Le
*
peut être placé n'importe où horizontalement dans la colonne, tant qu'il n'est pas ambigu (j'ai tous mes exemples avec le*
aligné à droite).
Contribution
- Une liste d'entiers positifs dans n'importe quel format pratique , chacun
>1
. - Vous pouvez supposer que l'entrée est pré-triée.
- L'entrée est garantie d'avoir uniquement des valeurs uniques.
Sortie
Représentation artistique ASCII résultante de la table des diviseurs premiers.
Règles
- Les sauts de ligne ou les espaces de début ou de fin sont tous facultatifs, tant que les caractères eux-mêmes s'alignent correctement.
- S'il est plus court d'avoir une ligne de séparation séparant les en-têtes de colonne / ligne des données tabulaires, cela est également autorisé.
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Si possible, veuillez inclure un lien vers un environnement de test en ligne afin que les gens puissent essayer votre code!
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Exemples
6,9,14,22
6 9 14 22
2 * * *
3 * *
7 *
11 *
2,3,5,7
2 3 5 7
2 *
3 *
5 *
7 *
2,4,8,16,32
2 4 8 16 32
2 * * * * *
75,99,151,153
75 99 151 153
3 * * *
5 *
11 *
17 *
151 *