Pagini recente » Cod sursa (job #2473598) | Cod sursa (job #2930143) | template/detailed-feedback | Cod sursa (job #162399) | Cod sursa (job #1737288)
#include <cstdio>
#define ll unsigned long long
using namespace std;
ll fact(int &x, int &y)
{
ll p=1, k=1;
if(x-y)
{
for(int i=y+1; i<=x; i++) p*=i;
for(int i=1; i<=x-y; i++) k*=i;
ll r=p/k;
return r;
}
else return 1;
}
int main()
{
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
int n, p;
scanf("%d%d", &n, &p);
if(n==0 || n==1) printf("%d", 0);
else
{
ll nr=0;
if(n%2)
{
for(int i=0; i<=n/2; i++)
if(fact(n, i)%p==0) nr++;
nr=nr*2;
}
else
{
for(int i=0; i<=n/2-1; i++)
if(fact(n, i)%p==0) nr++;
nr=nr*2+1;
}
printf("%lld", nr);
}
}