Amnestie

22 Gefangene werden freikommen.

Am Anfang sind alle Türen verschlossen.

Nach einmaliger Betätigung ist eine Tür offen, nach zweimaliger Betätigung wieder verschlossen etc.

Am Ende sind also  die Türen offen, deren Schlösser eine ungerade Anzahl von Betätigungen durchlaufen haben.

Die Anzahl der Betätigungen entspricht der Anzahl der natürlichen Zahlen, durch die die jeweilige Schlossnummer teilbar ist (Beispiel: Nr. "10" lässt sich durch 1, 2, 5 und 10 teilen, hat also 4 Teiler und bleibt deshalb verschlossen).

Jede Zahl lässt sich als Produkt ihrer Teiler darstellen. So ist N = a1 x b1 = a2 x b2 etc.

Solange a1 ... an und b1 ... bn alle unterschiedlich sind, ist die Anzahl der Teiler gerade.

Es gibt nur einen Fall, in dem sich eine ungerade Anzahl von Teilern ergibt: wenn ein Faktorpaar ai, bi identisch ist. Das ist das Merkmal einer Quadratzahl (Beispiel: Nr. "16" lässt sich durch 1, 2, 4, 8, 16 teilen, hat also 5 Teiler und bleibt deshalb offen).

Es ist also die Anzahl der Quadratzahlen zu suchen, die in der Summe der Türen steckt.

Das ist einfach der ganzzahlige Anteil der Quadratwurzel, also: 
F = mod [sqr(N)], wobei 
F = Anzahl der Freigänger
N = Anzahl der Gefangenen
mod[sqr()] = ganzzahliger Anteil der Quadratwurzel.
Im Falle von N = 500 ist F = 22

Das heisst:

 1 4 9 16 25 36 49 64 81 100 121 144
169 196 225 256 289 324 364 400 441 484