Вступление
Предположим, у меня есть список целых чисел, скажем, L = [-1,2,2,1,2,7,1,4] . Мне нравится иметь баланс в моей жизни, поэтому я рад видеть, что в нем столько же нечетных элементов, сколько и четных. Более того, он также имеет одинаковое количество элементов во всех классах по модулю 3, в которых он имеет элементы:
[-1,2,2,1,2,7,1,4]
0 mod 3:
1 mod 3: 1 7 1 4
2 mod 3: -1 2 2 2
К сожалению, для классов по модулю 4 это больше не имеет места. В общем, мы говорим, что непустой список сбалансирован по модулю N, если он имеет одинаковое количество элементов во всех классах по модулю N, для которых это число не равно 0. Вышеприведенный список L является сбалансированным по модулю 2 и 3, но не сбалансированным по модулю 4.
Задание
Ваш ввод представляет собой непустой список L целых чисел, взятых в любом приемлемом формате. Ваш вывод - список тех целых чисел N ≥ 2 , что L сбалансировано по модулю N , опять же в любом приемлемом формате. Порядок вывода не имеет значения, но он не должен содержать дубликатов.
Гарантируется, что на выходе имеется только конечное число чисел, что точно означает, что не все элементы L встречаются в нем одинаковое количество раз. Примерами неверных входных данных являются [3] , [1,2] и [0,4,4,0,3,3] . Обратите внимание, что наибольшее число в выводе не более max (L) - min (L) .
Наименьшее количество байтов в каждом языке выигрывает, и стандартный код-гольф применяются правила .
Контрольные примеры
[1,1,2] -> []
[1,1,5] -> [2,4]
[1,1,24] -> [23]
[1,2,3,2] -> [2]
[12,12,-4,20] -> [2,3,4,6,8,12,24]
[1,1,12,12,-3,7] -> [3,10]
[-1,2,2,1,2,7,1,4] -> [2,3]
[4,-17,-14,-18,-18,3,5,8] -> []
[-18,0,-6,20,-13,-13,-19,13] -> [2,4,19]
[-11,-19,-19,3,10,-17,13,7,-5,16,-20,20] -> []
[3,0,1,5,3,-6,-16,-20,10,-6,-11,11] -> [2,4]
[-18,-20,14,13,12,-3,14,6,7,-19,17,19] -> [2,3]
[-16,-9,6,13,0,-17,-5,1,-12,-4,-16,-4] -> [3,9]
[-97,-144,3,53,73,23,37,81,-104,41,-125,70,0,111,-88,-2,25,-112,54,-76,136,-39,-138,22,56,-137,-40,41,-141,-126] -> [2,3,6]