Pagini recente » Cod sursa (job #756230) | Cod sursa (job #2295315) | Cod sursa (job #2745340) | Cod sursa (job #1783145) | Cod sursa (job #1706623)
#include <bits/stdc++.h>
int c[20],p;
long long n,np[1<<18][20];
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%lld %lld",&n,&p);
int s=0;
while (n)
{
c[s++]=n%10;
n/=10;
}
std::reverse(c,c+s);
np[0][0]=1;
for (int i=0;i<(1<<s);++i)
for (int j=0;j<p;++j)
if (np[i][j])
for (int k=0;k<s;++k)
if ((i&(1<<k))==0)
np[i|(1<<k)][(j*10+c[k])%p]+=np[i][j];
printf("%lld",np[(1<<s)-1][0]);
}