Pagini recente » Cod sursa (job #2261406) | Cod sursa (job #1189988) | Cod sursa (job #2469250) | Cod sursa (job #1392361) | Cod sursa (job #1622323)
#include <fstream>
using namespace std;
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int v[10], z;
void pascal(int x, int f, int g)
{
int p = 0;
while(x%f==0)
{
p++;
x = x/f;
}
v[f] += p*g;
}
int main()
{
int n, d;
cin>>n>>d;
for(int k=1; k<=(n-1)/2; k++){
if(d%2==0){
pascal(n-k+1, 2, 1);
pascal(k, 2, -1);
}
if(d%3==0){
pascal(n-k+1, 3, 1);
pascal(k, 3, -1);
}
if(d%5==0){
pascal(n-k+1, 5, 1);
pascal(k, 5, -1);
}
if(d==2 and v[2]>0) z+=2;
if(d==3 and v[3]>0) z+=2;
if(d==4 and v[2]>1) z+=2;
if(d==5 and v[5]>0) z+=2;
if(d==6 and v[2]>0 and v[3]>0) z += 2;
}
if(n%2==0){
pascal(n-n/2+1, 2, 1);
pascal(n-n/2+1, 3, 1);
pascal(n-n/2+1, 5, 1);
pascal(n/2, 2, -1);
pascal(n/2, 3, -1);
pascal(n/2, 5, -1);
if(d==2 and v[2]>0) z+=1;
if(d==3 and v[3]>0) z+=1;
if(d==4 and v[2]>1) z+=1;
if(d==5 and v[5]>0) z+=1;
if(d==6 and v[2]>0 and v[3]>0) z += 1;
}
cout<<z;
return 0;
}