#include<bits/stdc++.h>
using namespace std;

#define int long long int
int gcd(int p,int q){
        return p==0 ? q : gcd(q%p,p);
}

int dfs(int p,int q,int a,int n,int m,int pre){
        if(p==0) return 1;
        if(n==0) return 0;
        int res=0;
        for(int i=pre;i*m<=a;i++){
                if(n*q<p*i) break;
                int newp=p*i-q;
                if(newp<0) continue;
                int newq=q*i;
                int g=gcd(newp,newq);
                newp/=g,newq/=g;
                res+=dfs(newp,newq,a,n-1,m*i,i);
        }
        return res;
}
signed main(){
        int p,q,a,n;
        while(cin>>p>>q>>a>>n,p){
                int res=dfs(p,q,a,n,1,1);
                cout<<res<<endl;
        }
        return 0;
}