Me preguntaron esto en una entrevista.
Tenemos personas numeradas del uno al infinito: $$1, 2, 3, 4, 5, 6, 7, 8, \dotsc\,.$$ En la primera pasada cada 2 nd persona es asesinada, por lo que tenemos $$1, 3, 5, 7, 9, 11,\dotsc$$ restante. En la siguiente pasada cada 3 rd persona restante en la muerte. Ahora tenemos: $$1, 3, 7, 9, 13, \dotsc\,.$$ Esto sigue y sigue. Teniendo en cuenta su número en la fila tenemos que decir si la persona sobrevivió.
No se me ocurrió nada mejor que una solución de fuerza bruta. Me dijeron específicamente que usara la programación, pero las ideas basadas en las matemáticas también son bienvenidas. La solución de fuerza bruta era tener una matriz booleana de tamaño $N$ y $\log N$ pases para todos $N$ para marcar cada $k$ th elemento no marcado verdadero. Si $N$ se marca devuelve false si no al final devuelve true.