#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void sieve(int A[],bool B[],int n){
    for(int i=0;i<=n;i++){
        A[i]=i;
        B[i]=true;
    }
    for(int i=2;i*i<=n;i++){
        if(B[i])
            for(int j=i*i;j<=n;j+=i){
                B[j]=false;
                A[j]=min(A[j],i);
    }
}
}
vector<int> primefac(int n,int A[]){
    vector<int>p;
    while(n!=1){
        p.push_back(A[n]);
        n/=A[n];
    }
    return p;
}
int divisors( vector<int>p){
    int s=0,e=1;
    for(int i=0;i<p.size()-1;i++){
        if(p[i]!=p[i+1]){
            s+=2;
            e*=s;
            s=0;
        }
        else
            s++;
    }
    s+=2;
    e*=s;
    return e;
}

int main(){
    int a,b,n,s=0;
    cin>>a>>b>>n;
    int*A=new int[max(a,b)+1];
    bool*B=new bool[max(a,b)+1];
    sieve(A,B,max(a,b));
    delete[]B;
    for(int i=min(a,b);i<=max(a,b);i++){
        if(i==1){
            if(n==1)
                s++;
        }
        else{
           if(divisors(primefac(i,A))==n)
               s++;
    }}
    delete[]A;
    cout<<s;
    return 0;


}