Pagini recente » Cod sursa (job #53121) | Cod sursa (job #375905) | Cod sursa (job #2217573) | Cod sursa (job #3213811) | Cod sursa (job #514054)
Cod sursa(job #514054)
#include <stdio.h>
#define Pmax 18
#define LL long long
LL din[Pmax+1][(1<<Pmax)+1];
LL N;
int P,vn[Pmax+1],sn;
int main(){
int i,j,r;
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%lld %d",&N,&P);
while( N ){
vn[sn++]=N%10;
N/=10;
}
for(i=0;i<sn;++i) din[(1<<i)][vn[i]%P]=1;
for(i=1;i<(1<<sn);++i)
for(j=0; j<sn; ++j)
if( !(i&(1<<j)) )
for(r=0;r<P;++r)
din[i+(1<<j)][(r*10+vn[j])%P]+=din[i][r];
printf("%lld\n",din[(1<<sn)-1][0]);
fclose(stdin); fclose(stdout);
return 0;
}