/*
约瑟夫问题
题目罗里吧嗦,就是告诉你一个数n,从第二个数开始数,
m最小取多少,可以保证数字2存活,相当于位置1存活
*/
#include <stdio.h>
int main(int argc, char *argv[])
{
int n,m,i,s;
int a[150];
while(scanf("%d",&n) && n)
{
m=1;
while(1)
{
s=0;
for (i=2;i<=n-1;i++)
s=(s+m)%i;
if(s+1==1) break;//把s+1当作位置来考虑,即位置1(数字2)
m++;
}
printf("%d\n",m);
}
return 0;
}
09-17