Pagini recente » Cod sursa (job #548163) | Cod sursa (job #164665) | Cod sursa (job #476374) | Cod sursa (job #106361) | Cod sursa (job #1953737)
#include <bits/stdc++.h>
#define ll unsigned long long
#define Nmax 5000001
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
ll fct[Nmax];
int phi[7]={0,0,1,2,2,4,2};
int M;
ll put(ll a, int n)
{
ll r=1;
while(n)
{
if(n%2)
r=(r*a)%M;
n/=2;
a=(a*a)%M;
}
return r;
}
int main()
{int n,d;
f>>n>>d;
M=d;
d=phi[d];
fct[0]=1;
for(int i=1;i<=n;i++)
fct[i]=(fct[i-1]*i)%M;
ll p1,p2;
p1=fct[n];
ll nr=0;
for(int i=0;i<=n/2;i++)
{
p2=(fct[n-i]*fct[i])%M;
p2=put(p2,d-1);
p2=(p1*p2)%M;
if(!p2) nr++;
}
g<<nr;
return 0;
}