introduction
Supposons que j'ai une liste d'entiers, disons L = [-1,2,2,1,2,7,1,4] . J'aime avoir l'équilibre dans ma vie, donc je suis heureux de voir qu'il a autant d'éléments impairs que d'éléments pairs. De plus, il a également un nombre égal d'éléments dans toutes les classes modulo de 3 dans lesquelles il a des éléments:
[-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
Malheureusement, pour les classes modulo de 4, cela ne tient plus. En général, nous disons qu'une liste non vide est équilibrée modulo N si elle a un nombre égal d'éléments dans toutes les classes modulo de N pour lesquelles ce nombre n'est pas 0. La liste ci-dessus L est modulo équilibrée 2 et 3, mais modulo déséquilibrée 4.
La tâche
Votre entrée est une liste non vide L d'entiers pris dans n'importe quel format raisonnable. Votre sortie est la liste de ces entiers N ≥ 2 tels que L est modulo N équilibré , là encore dans n'importe quel format raisonnable. L'ordre de sortie n'a pas d'importance, mais il ne doit pas contenir de doublons.
Il est garanti qu'il n'y a qu'un nombre fini de nombres dans la sortie, ce qui signifie précisément que tous les éléments de L n'y figurent pas autant de fois. Des exemples d'entrées non valides sont [3] , [1,2] et [0,4,4,0,3,3] . Notez que le plus grand nombre dans la sortie est au maximum max (L) - min (L) .
Le nombre d'octets le plus bas dans chaque langue gagne et le code-golf standard s'appliquent.
Cas de test
[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]