func_code_string: #include <bits/stdc++.h>   using namespace std;   char s[20];   int m;   long long dp[1 << 18][110];   int cnt[20];   int main() {     ios::sync_with_stdio(false);     cin >> s >> m;     memset(dp, 0, sizeof(dp));     memset(cnt, 0, sizeof(cnt));     dp[0][0] = 1;     int l = strlen(s);     long long x = 1 << l, d = 1;     for (int i = 0; i < l; i++) d *= ++cnt[s[i] -  0 ];     for (int i = 0; i < x; i++) {       for (int j = 0; j < l; j++) {         if (!(i & (1 << j)) && (i || s[j] -  0 )) {           for (int k = 0; k < m; k++) {             if (dp[i][k])               dp[i | (1 << j)][(k * 10 + (s[j] -  0 )) % m] += dp[i][k];           }         }       }     }     cout << dp[x - 1][0] / d << endl;     return 0;   }   