Pagini recente » Cod sursa (job #1650223) | Profil OnofreiPaul324CB | Cod sursa (job #203543) | Statistici Clorina Intergalactica Valoroasa (Te_pup_dulce_nu_pleca) | Cod sursa (job #2017093)
#include <bits/stdc++.h>
using namespace std;
int cif[20];
long long dp[300000][25];
long long pow2[30];
void put(){
pow2[0] = 1;
for (int i=1; i<=20; i++){
pow2[i] = pow2[i-1] * 2;
}
}
int main() {
freopen ("ratphu.in" , "r" , stdin);
freopen ("ratphu.out" , "w" , stdout);
put();
long long n;
int p;
cin>>n>>p;
int c = 0;
while (n){
cif[c] = (int)(n%10);
n = n/10;
c++;
}
/*for (int i=0; i<c; i++){
cout<<cif[i]<<" ";
}*/
dp[0][0] = 1;
for (int i=0; i<pow2[c]; i++){
for (int rest = 0; rest<p; rest ++){
for (int j=0; j<c; j++){
if (i & (1 << j)){
continue;
}
dp[i ^ pow2[j]][(rest * 10 + cif[j]) % p] += dp[i][rest];
}
}
}
cout<<dp[pow2[c] - 1][0];
return 0;
}