← Home
#include <stdio.h>

long long a, z;
int p, i, j, P[78777];

int C(long long x){
    for (j=0; ;){
        z=P[j++];
        if((z*z)>x) return 1;
        if(!(x%z)) return 0;
    }
}

inline int F(int i,long long a){
    if(a==1) return 1;
    long long y=P[i];
    if((y+1)>a) return 0;
    if(((y*y)+1)>a) return C(--a);
    int res = F(i+1, a);
    for(; ;){
        if (++y>a) return res;
        if (!(a%y)) res+=F(i+1,a/y);
        y=(y-1)*P[i];
    }
}

int main(){
    P[p++] = 2;
    for (i=3;i<1000010;i+=2) P[C(i)?p++:p] = i;
    scanf("%I64d",&a);
    printf("%d\n",F(0,a));
}