Cod sursa(job #455935)
Utilizator | Data | 14 mai 2010 16:29:27 | |
---|---|---|---|
Problema | Pascal | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<fstream.h>
long long fact(long si, long sf)
{
long i;
long long f=1;
for(i=si; i<=sf; ++i)
f*=i;
return f;
}
long long calc_val(long r, long poz)
{
if(poz > r-poz)
return fact(poz+1, r) / fact(1, r-poz);
else
return fact(r-poz+1, r) / fact(1, poz);
}
int main()
{
long r, d, i;
long long nrsol=0;
ifstream f("pascal.in");
f>>r>>d;
for(i=1; i<=r/2; ++i)
{
if(calc_val(r, i)%d==0)
{
if(i==r/2 && r%2==0)
++nrsol;
else
nrsol+=2;
}
}
ofstream g("pascal.out");
g<<nrsol;
}