#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,N;
    int a[1001]={0};
    for(i=2;i<45;i++){
        for(j=1;;j++){
            a[sum(j,i)]++;
            if(sum(j,i)>1001){
                break;
            }
        }
    }
    while(scanf("%d",&N)){
        if(N==0) break;
        printf("%d\n",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;
      }
      */