Pagini recente » Cod sursa (job #496426) | Cod sursa (job #2277884) | Cod sursa (job #170839) | Cod sursa (job #506481) | Cod sursa (job #465871)
Cod sursa(job #465871)
#include <cstdio>
int pp, sol, v[24], u[25], a[26], l;
long long n;
void back(int p)
{
int i;
if (p>l)
{
long long t=0;
for (i=1; i<=l; i++) t=t*10+a[i];
if (!(t%pp)) sol++;
} else
for (i=1; i<=l; i++)
if (!u[i])
{
u[i]=1;
a[p]=v[i];
back(p+1);
u[i]=0;
}
}
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%lld %d",&n,&pp);
int i, c;
long long x=n;
while (x)
{
l++;
v[l]=x%10;
x/=10;
}
for (i=1; i<=l/2; i++)
{
c=v[i];
v[i]=v[l-i+1];
v[l-i+1]=c;
}
back(1);
printf("%d\n",sol);
}