NewList prisoners.i() Procedure f2l(List p.i()) FirstElement(p()) : tmp.i=p() DeleteElement(p(),1) : LastElement(p()) AddElement(p()) : p()=tmp EndProcedure Procedure l2f(List p.i()) LastElement(p()) : tmp.i=p() DeleteElement(p()) : FirstElement(p()) InsertElement(p()) : p()=tmp EndProcedure OpenConsole() Repeat Print(#LF$+#LF$) Print("Josephus problem - input prisoners : ") : n=Val(Input()) If n=0 : Break : EndIf Print(" - input steps : ") : k=Val(Input()) Print(" - input survivors : ") : s=Val(Input()) : If s<1 : s=1 : EndIf ClearList(prisoners()) : For i=0 To n-1 : AddElement(prisoners()) : prisoners()=i : Next If n<100 : Print("Executed : ") : EndIf While ListSize(prisoners())>s And n>0 And k>0 And k