Вступ
Припустимо, у мене є список цілих чисел, скажімо 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]