#include using namespace std; using ll=long long; vector> P; ll N,K,M; ll an=0; void dfs(ll n,ll i){ if(i==P.size()){ an++; return; } else{ ll d=1; for(ll j=0;j<=P[i].second*K;j++){ if(n*d<=M)dfs(n*d,i+1); else break; d*=P[i].first; } } } int main(){ cin>>N>>K>>M; for(ll i=2;i*i<=N;i++){ if(N%i==0){ P.push_back({i,0}); while(N%i==0){ N/=i; P.back().second++; } } } if(N!=1)P.push_back({N,1}); dfs(1,0); cout<