Intro
Qualcosa con cui ho giocato in matematica ricreativa è stata la costruzione di un tavolo divisore per confrontare visivamente / contrastare i primi divisori di un insieme di numeri. L'insieme dei numeri di input si trova nella parte superiore come etichette di colonna, i divisori primi sono a sinistra come etichette di riga e un segno indica la posizione delle due linee.
Ad esempio, per l'input 6, 9, 14, 22
verrebbe costruita una tabella simile alla seguente:
6 9 14 22
2 * * *
3 * *
7 *
11 *
Questo perché 6
ha divisori primi di 2
e 3
, 9
ha divisori primi di 3
e così via.
Costruzione
- La tabella è costruita in modo tale che i numeri di input formino etichette di colonne separate da spazi e in ordine crescente (si può presumere che siano preordinate) e che i divisori primi siano elencati a sinistra in ordine crescente uno per riga formando la riga etichette.
- Si noti che potrebbero essere richiesti spazi iniziali sui divisori primi e numeri di input se i numeri hanno lunghezze diverse, in modo che tutte le colonne abbiano la stessa larghezza e siano allineate in modo appropriato.
- Ogni divisore è rappresentato da un singolo
*
(o altro carattere ASCII adatto di tua scelta, purché lo stesso carattere venga utilizzato per tutte le occorrenze). - I divisori multipli vengono ignorati (ad esempio,
3 x 3 = 9
ma ce n'è solo uno*
per quell'intersezione). - È
*
possibile posizionarlo ovunque orizzontalmente nella colonna, a condizione che sia inequivocabile (ho tutti i miei esempi con*
allineato a destra).
Ingresso
- Un elenco di numeri interi positivi in qualsiasi formato conveniente , ciascuno
>1
. - Si può presumere che l'input sia preordinato.
- È garantito che l'input abbia solo valori univoci.
Produzione
La risultante rappresentazione artistica ASCII della tabella dei divisori primi.
Regole
- Le nuove linee iniziali o finali o gli spazi bianchi sono tutti opzionali, purché i personaggi stessi si allineino correttamente.
- Se è più breve avere una linea di divisione che separa le intestazioni di colonna / riga dai dati tabulari, anche questo è permesso.
- È accettabile un programma completo o una funzione. Se una funzione, è possibile restituire l'output anziché stamparlo.
- Se possibile, includi un collegamento a un ambiente di test online in modo che le persone possano provare il tuo codice!
- Sono vietate le scappatoie standard .
- Si tratta di code-golf quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).
Esempi
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 *