Pagini recente » Cod sursa (job #2707850) | Cod sursa (job #1181867) | Cod sursa (job #1138175) | Cod sursa (job #982395) | Cod sursa (job #3350789)
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int Exp(int n, int p)
{
int t = p, exp = 0;
while(t <= n)
{
exp += n / t;
t *= p;
}
return exp;
}
bool Comb(int n, int k, int p)
{
if(p == 6)
for(int i = 2; i <= 3; i++)
if(Exp(n, i) <= (Exp(k, i) + Exp(n - k, i)))
return false;
if(p == 4)
return Exp(n, 2) - (Exp(k, 2) + Exp(n - k, 2)) > 1;
return Exp(n, p) - (Exp(k, p) + Exp(n - k, p)) > 0;
}
int main()
{
int R, D, cnt = 0;
f >> R >> D;
for(int i = 0; i <= R; i++)
if(Comb(R, i, D) > 0)
cnt++;
g << cnt << '\n';
f.close();
g.close();
return 0;
}