http://acm.pku.edu.cn/JudgeOnline/problem?id=1012
#include <stdio.h>
int main()
{
int arr[15],i,k,m = 0,bad,rest;
for(i = 0; i < 15; i ++)
arr[i] = 0;
scanf("%d",&k);
while(k != 0)
{
m = 0;
if(arr[k] == 0)
{
while(1)
{
m ++;
bad = k*2,rest = 0;
while(1)
{
rest = (rest+m-1) % bad + 1 ;
if(rest > k)
{
bad--;
rest--;
}
else
break;
}
if(bad == k)
{
arr[k] = m;
break;
}
}
}
printf("%d/n",arr[k]);
scanf("%d",&k);
}
return (0);
}
/*
3
4
0
5
30
*/