Уявімо, у нас є скінченна множина натуральних чисел. Цей набір може бути представлений у вигляді рядків крапок, де кожне ціле число, присутнє в наборі, заповнюється як карта скантрона або перфокарта . Наприклад, набір {1,3,4,6}
може бути представлений у вигляді:
*.**.*
*
являє собою член нашого набору і .
являє собою ціле число, яке не є членом, який він встановив.
Ці множини мають "фактори". Вільно x - це коефіцієнт y, якщо y може бути побудований з копій x. Більш чітко наше визначення фактора полягає в наступному:
- x - коефіцієнт y, якщо і лише тоді, коли y - це об'єднання декількох роз'єднаних множин, які є x зі зміщенням.
Ми могли б назвати *.*
в фактор з , *.**.*
тому що це абсолютно ясно з двох примірників *.*
пут кінця в кінець.
*.**.*
------
*.*...
...*.*
Фактори не повинні бути цілими до кінця, ми також сказали б, що *.*
це фактор*.*.*.*
*.*.*.*
-------
*.*....
....*.*
Фактори також можуть перетинатися. Це *.*
також є фактором****
****
----
*.*.
.*.*
Однак число не може бути покрито фактором більше одного разу. Наприклад, *.*
це не є фактором *.*.*
.
Ось більш складний приклад:
*..*.**..***.*.*
Це є *..*.*
чинником. Ви бачите це нижче, де я вишикував три екземпляри *..*.*
.
*..*.**..***.*.*
----------------
*..*.*..........
......*..*.*....
..........*..*.*
Завдання
Враховуючи набір будь-якого розумного представлення, виводять усі множини, які є чинниками вхідних даних.
Ви можете індексувати будь-яке значення (тобто ви можете вибрати найменше число, яке може бути присутнім у введенні). Ви також можете припустити, що набір вводу завжди буде містити найменше значення.
Це питання з кодовим гольфом, тому вам слід прагнути зробити це якомога менше байтів.
Випробування
Ці тестові справи були зроблені вручну, на великих розмірах може бути помилка чи дві
* -> *
*.*.* -> *, *.*.*
*.*.*.* -> *, *.*, *...*, *.*.*.*
****** -> *, **, *..*, ***, *.*.*, ******
*..*.**..***.*.* -> *, *..*.*, *.....*...*, *..*.**..***.*.*
*...*****.**.** -> *, *...**.**, *.....*, *...*****.**.**
*.*.*
=x+x^2+x^4
, то 1+x+x^2
= ***
був би дільником, правда? x+x^2+x^4 = (1-x+x^2)(1+x+x^2)
*
вказано як фактор, який представляє те саме підмножина, що *.
і *..
.
[1,3,5,7]
для*.*.*.*
), чи можна вважати, що він відсортований?