#include <iostream>
using namespace std;
void solve() {
long long n;
// 讀取測資,直到輸入為 0 結束
while (cin >> n && n != 0) {
long long ans = 0;
long long target = 2 * n;
// k 代表連續數字的項數,依題意至少需要 2 個數字
// 根據 k*(k+1) <= 2n,當 k*(k-1) 已經大於等於 2n 時即可停止
for (long long k = 2; k * (k - 1) < target; ++k) {
// 條件 1: 2n 必須能被 k 整除
if (target % k == 0) {
long long double_a = (target / k) - k + 1;
// 條件 2 & 3: 2a 必須大於 0 且為偶數
if (double_a > 0 && double_a % 2 == 0) {
ans++;
}
}
}
cout << ans << "\n";
}
}
int main() {
// 最佳化輸入輸出速度
ios_base::sync_with_stdio(false);
cin.tie(NULL);
solve();
return 0;
}