Pagini recente » Cod sursa (job #2149549) | Cod sursa (job #576798) | Cod sursa (job #549068) | Cod sursa (job #2025069) | Cod sursa (job #465769)
Cod sursa(job #465769)
#include <fstream>
using namespace std;
const char InFile[]="ratphu.in";
const char OutFile[]="ratphu.out";
ifstream fin(InFile);
ofstream fout(OutFile);
unsigned long long L,T,N,A;
int P,v[30],p[30],nr[30];
void calc(int k)
{
if(k<L)
{
for(register int i=0;i<10;++i)
{
if(nr[i]!=0)
{
A*=10;
A+=i;
p[k]=nr[i];
--nr[i];
calc(k+1);
++nr[i];
}
}
}
else
{
int V=1;
for(register int i=0;i<k;++i)
{
V*=p[i];
}
if(A%P==0)T+=V;
A=0;
}
}
int main()
{
fin>>N>>P;
fin.close();
L=0;
while(N)
{
++v[N%10];
N/=10;
++L;
}
for(register int i=0;i<=10;++i)
{
nr[i]=v[i];
}
calc(0);
fout<<T;
fout.close();
return 0;
}