#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> d;
vector< pair<int, pair<int, int>> > r;
bool bs(int x){
    int l=0, r=d.size()-1;
    while(l<=r){
        int m=(l+r)/2;
        if(d[m]==x) return true;
        else if(d[m]>x) r=m-1;
        else l=m+1;
    }
    return false;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    for(int i=1; i<=n; i++) if(n%i==0) d.push_back(i);
    for(int i=0; i<d.size(); i++){
        for(int j=i; j<d.size(); j++){
            if(n%(d[i]*d[j])!=0) continue;
            int p=n/(d[i]*d[j]);
            pair<int, pair<int, int>> cans={min(d[i], min(d[j], p)), {(d[i]+d[j]+p) - min(d[i], min(d[j], p)) - max(d[i], max(d[j], p)), max(d[i], max(d[j], p))}};
            bool f = bs(p);
            if(f and (r.size() == 0 or find(r.begin(), r.end(), cans) == r.end())) r.push_back(cans);
        }
    }
    cout<<r.size()<<"\n";
    return 0;
}
