вступление
Что-то, с чем я играл в рекреационной математике, - это создание таблицы делителей для визуального сравнения / сопоставления простых делителей набора чисел. Множество входных чисел находится в верхней части в виде меток столбцов, простые делители слева в виде меток строк, а метка указывает, где эти две строки располагаются вверх.
Например, для ввода будет 6, 9, 14, 22
построена таблица, подобная следующей:
6 9 14 22
2 * * *
3 * *
7 *
11 *
Это потому, что 6
имеет простые делители 2
и 3
, 9
имеет простые делители 3
и так далее.
строительство
- Таблица построена так, что входные числа образуют метки столбцов, разделенные пробелами и в порядке возрастания (можно предположить, что они предварительно отсортированы), а простые делители перечислены слева в порядке возрастания по одному на строку в строке, образующей строку этикетки.
- Обратите внимание, что начальные пробелы на простых делителях и входных числах могут потребоваться, если числа имеют разную длину, поэтому все столбцы имеют одинаковую ширину и выстроены в линию соответствующим образом.
- Каждый делитель представлен одним
*
(или другим подходящим символом ASCII по вашему выбору, при условии, что один и тот же символ используется для всех случаев). - Несколько делителей игнорируются (например,
3 x 3 = 9
но*
для этого пересечения есть только один ). *
Могут быть размещены в любом месте в горизонтальном положении в колонне, так долго , как это однозначна ( у меня есть все мои примеры с*
выравниванием по правому краю).
вход
- Список целых положительных чисел в любом удобном формате , каждый
>1
. - Вы можете предположить, что вход предварительно отсортирован.
- Входные данные гарантированно имеют только уникальные значения.
Выход
Результирующее ASCII художественное представление таблицы простых делителей.
правила
- Начальные или завершающие символы новой строки или пробелы являются необязательными, при условии, что сами символы выстроены правильно.
- Если короче иметь разделительную линию, отделяющую заголовки столбцов / строк от табличных данных, это тоже разрешено.
- Допустимы либо полная программа, либо функция. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Примеры
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 *