n=int(input('Количество воинов: '))m=int(input('m = '))L=[(i+1)foriinrange(n)]current=0# воин, от которого начинается отсчётwhilelen(L)>1:kill=(current+m-1)%len(L)# этого казним; # отнимаем 1 в связи с тем, что индексы идут с нуля;# остаток от деления на количество элементов - для "зацикливания" (ключевая идея!)print(L.pop(kill),'убит')# либо del L[kill]current=killprint('Остался в живых: ',L[0])
Количество воинов:
m =
5 убит
3 убит
2 убит
4 убит
7 убит
1 убит
Остался в живых: 6