#55333: c++


yp11451267@yphs.tp.edu.tw (705-43鄭丞博)


#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;
}