#include<iostream>
//#include<>
//#include<>

#define endl '\n'

using namespace std;

int memo[100000024];

void budi_burz(){

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

}

long long rec_nechetno(long long n){
    long long ans = 0;
    //cout << n << " " ;
    //if(memo[n] != 0) return memo[n];
    bool flag = false;
    for(int i = 3; i <= n / 2; i++){
        //cout << n << " ";
        if(n % i == 0){
            ans += rec_nechetno (n / i);
            flag = true;
        } 
    }
    if(!flag) ans++;
    // cout << endl;
    memo[n] = ans;
    return ans;
}

long long rec(long long n){
    long long ans = 0;
    //cout << n << " " ;
    if(memo[n] != 0) return memo[n];
    if(n == 1) return 1;
    for(int i = 2; i <= n / 2 + 1; i++){
        if(n % i == 0){
            ans += rec(n / i);
        } 
    }
    memo[n] = ans;
    return ans;
}

bool isProsto(long long n){
    if(n == 2) return true;
    if(n % 2 == 0) return false;
    for(int i = 3; i * i <= n; i += 2){
        if(n % i == 0) return false;
    }
    return true;
}

int main(){

    budi_burz();

    long long n;
    cin >> n;
    if(n == 1){
        cout << 1 << endl;
        return 0;
    }
    if(isProsto(n)){
        cout << 1 << endl;
        return 0;
    }
    if(n % 2 == 1) cout << rec_nechetno(n) + 1 << endl;
    else cout << rec(n) + 1 << endl;
    //cout << 1 << endl;
    

    return 0;
}