aoj1131:Unit Fraction Partition
コード
#include<bits/stdc++.h> using namespace std; #define int long long int P,Q,A,N; int dfs(int p,int q,int n,int t){ if(P*q==p*Q)return 1; if(P*q<p*Q)return 0; if(N==n)return 0; int ret=0; for(int i=t;q*i<=A;i++){ ret+=dfs(p*i+q,q*i,n+1,i); } return ret; } signed main(){ while(cin>>P>>Q>>A>>N,P||Q||A||N) cout<<dfs(0,1,0,1)<<endl; return 0; }