Introducción
Algo con lo que he jugado en matemáticas recreativas ha sido la construcción de una tabla de divisores para comparar / contrastar visualmente los divisores primos de un conjunto de números. El conjunto de números de entrada se encuentra en la parte superior como etiquetas de columna, los divisores primos están a la izquierda como etiquetas de fila y una marca indica dónde se alinean los dos.
Por ejemplo, para la entrada 6, 9, 14, 22
se construiría una tabla similar a la siguiente:
6 9 14 22
2 * * *
3 * *
7 *
11 *
Esto se debe a que 6
tiene divisores primos de 2
y 3
, 9
tiene divisores primos de 3
, y así sucesivamente.
Construcción
- La tabla está construida de tal manera que los números de entrada forman etiquetas de columna que están separadas por espacios y en orden ascendente (puede suponer que están ordenadas previamente), y los divisores primos se enumeran a la izquierda en orden ascendente uno por línea que forma la fila etiquetas.
- Tenga en cuenta que los espacios iniciales en los divisores primos y los números de entrada pueden ser necesarios si los números tienen longitudes diferentes, de modo que todas las columnas tengan el mismo ancho y se alineen adecuadamente.
- Cada divisor está representado por un solo
*
(u otro carácter ASCII adecuado de su elección, siempre que se utilice el mismo carácter para todas las ocurrencias). - Se ignoran múltiples divisores (por ejemplo,
3 x 3 = 9
pero solo hay uno*
para esa intersección). - El
*
se puede colocar en cualquier lugar horizontalmente en la columna, siempre que no sea ambiguo (tengo todos mis ejemplos con el*
alineado a la derecha).
Entrada
- Una lista de enteros positivos en cualquier formato conveniente , cada uno
>1
. - Puede suponer que la entrada está ordenada previamente.
- Se garantiza que la entrada solo tiene valores únicos.
Salida
La representación de arte ASCII resultante de la tabla de divisores primos.
Reglas
- Las nuevas líneas o espacios en blanco iniciales o finales son opcionales, siempre que los caracteres se alineen correctamente.
- Si es más corto tener una línea divisoria que separe los encabezados de columna / fila de los datos tabulares, también está permitido.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que las personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
Ejemplos
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 *