Если бы задача была практическая, то можно было бы использовать такой алгоритм. Разбиваем все числа на четные и нечетные. Над нечетными выполняем преобразование до тех пор, пока они не кончатся. Если кончились - выполняем над четными, если появились нечетные - опять над ними. В итоге если все свелось к набору из одинаковых чисел, то набор приводим, если к двум наборам одинаковых чисел разной четности, то - неприводим. Только вряд ли я смогу доказать, что этот алгоритм всегда правильно работает.
Для набора
если выбрать пару
, то получим неприводимый набор
, но если выбрать пару
или
, то получим набор, который приводим к набору
. Все варианты преобразований порождают орграф, который не дерево, и даже не слоеный. Вполне вероятно, что для определения неприводимости нужно использовать перебор.
Для
, например, неприводимы:
Вероятнее всего, что это переборная задача.