Вступ
Щось, з чим я бавився в рекреаційній математиці, - це побудова таблиці дільниць для візуального порівняння / порівняння простих дільників набору чисел. Набір вхідних номерів розташований вгорі, як мітки стовпців, ліві роздільники розташовані ліворуч як мітки рядків, а позначка вказує, де два рядки вгору.
Наприклад, для введення буде 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 *