#include<stdio.h>

int gcd(int a, int b)
{
    int c;

    if (a < b) {
        a+=b; b=a-b; a-=b;
    }

    while (b != 0) {
        c = a % b;
        a = b;
        b = c;
    }

    return a;
}

int sum(int m,int n)
{
    int a;
    a = (m+n-1) * (m+n) / 2 - (m-1) * m / 2 ;
    return a ;
}

int main(void)
{
    int i,j,flag,N;
    int a[1000]={0};
    while(scanf("%d",&N)&&N!=0){
        flag=0;
        for(i=2;i<45;i++){
            for(j=1;j<i;j++){
                if(sum(i,j)>1000){
                    flag=1;
                    break;
                }
                a[sum(i,j)]++;
            }
            if(flag){
                break;
            }
        }
        printf("%d",a[N]);
    }
    return 0;
}







        /*    while(scanf("%d",&N)&&N!=0){
              count=0;
              s=0;
              for(i=1;i<=N;i++){
              s+=i;
              if(s>=N){
              break;
              }
              }

              for(j=2;j<=i;j++){
              jj=j;
              nn=N;
              a=gcd(nn,jj);
              if(jj!=a){
              nn/=a;
              jj/=a;
              }
              if(jj%2){
              if(nn%jj==0){
              count++;
              }
              } else {
              if(nn%jj==1){
              count++;
              }
              }
              }



              printf("%d\n",count);
              }
              return 0;
              }
              */