Pagini recente » Cod sursa (job #2915578) | Cod sursa (job #2491781) | Cod sursa (job #300585) | Cod sursa (job #43962) | Cod sursa (job #465682)
Cod sursa(job #465682)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
long long N,P,p,aux,nr,w,x,Sol,v[25];
long i,j,k;
int main()
{
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%lld%lld",&N,&P);
srand(time(NULL));
aux=N;
nr=0;
while(aux)
{
aux/=10;
nr++;
}
Sol=0;
if(P==1)
{
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
printf("%lld\n",Sol);
}
else
if(P==2)
{
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
aux=N;
p=0;
while(aux)
{
if(aux%10%2==0) p++;
aux/=10;
}
Sol*=p;
Sol/=nr;
printf("%lld\n",Sol);
}
else
if(P==3)
{
Sol=0;
p=nr;
nr=0;
aux=N;
while(aux)
{
nr+=aux%10;
aux/=10;
}
if(nr%3==0)
{
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
printf("%lld\n",Sol);
}
else printf("0\n");
}
else
if(P==4)
{
p=0;
aux=N;
while(aux)
{
v[++p]=aux%10;
aux/=10;
}
p=0;
w=0;
for(i=1;i<=nr;i++)
for(j=1;j<=nr;j++)
if(i!=j)
{
p++;
x=i*10+j;
if(x%4==0) w++;
}
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
Sol*=w;
Sol/=p;
printf("%lld\n",Sol);
}
else
if(P==5)
{
p=0;
aux=N;
while(aux)
{
if(aux%10==0||aux%10==5) p++;
aux/=10;
}
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
Sol*=p;
Sol/=nr;
printf("%lld\n",Sol);
}
else
if(P==6)
{
Sol=0;
p=nr;
nr=0;
aux=N;
while(aux)
{
nr+=aux%10;
aux/=10;
}
if(nr%3==0)
{
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
aux=N;
p=0;
while(aux)
{
if(aux%10%2==0) p++;
aux/=10;
}
Sol*=p;
Sol/=nr;
printf("%lld\n",Sol);
}
else printf("0\n");
}
else
if(P==8)
{
p=0;
aux=N;
while(aux)
{
v[++p]=aux%10;
aux/=10;
}
p=0;
w=0;
for(i=1;i<=nr;i++)
for(j=1;j<=nr;j++)
for(k=1;k<=nr;k++)
if(i!=j&&j!=k&&k!=i)
{
p++;
x=i*100+j*10+k;
if(x%8==0) w++;
}
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
Sol*=w;
Sol/=p;
printf("%lld\n",Sol);
}
else
if(P==9)
{
Sol=0;
p=nr;
nr=0;
aux=N;
while(aux)
{
nr+=aux%10;
aux/=10;
}
if(nr%9==0)
{
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
printf("%lld\n",Sol);
}
else printf("0\n");
}
else
if(P==10)
{
p=0;
aux=N;
while(aux)
{
if(aux%10==0) p++;
aux/=10;
}
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
Sol*=p;
Sol/=nr;
printf("%lld\n",Sol);
}
else
if(P==12)
{
Sol=0;
p=nr;
nr=0;
aux=N;
while(aux)
{
nr+=aux%10;
aux/=10;
}
if(nr%3==0)
{
p=0;
aux=N;
while(aux)
{
v[++p]=aux%10;
aux/=10;
}
p=0;
w=0;
for(i=1;i<=nr;i++)
for(j=1;j<=nr;j++)
if(i!=j)
{
p++;
x=i*10+j;
if(x%4==0) w++;
}
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
Sol*=w;
Sol/=p;
printf("%lld\n",Sol);
}
else printf("0\n");
}
else
if(P==15)
{
Sol=0;
p=nr;
nr=0;
aux=N;
while(aux)
{
nr+=aux%10;
aux/=10;
}
if(nr%3==0)
{
p=0;
aux=N;
while(aux)
{
if(aux%10==0||aux%10==5) p++;
aux/=10;
}
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
Sol*=p;
Sol/=nr;
printf("%lld\n",Sol);
}
else printf("0\n");
}
else
if(P==18)
{
Sol=0;
p=nr;
nr=0;
aux=N;
while(aux)
{
nr+=aux%10;
aux/=10;
}
if(nr%9==0)
{
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
aux=N;
p=0;
while(aux)
{
if(aux%10%2==0) p++;
aux/=10;
}
Sol*=p;
Sol/=nr;
printf("%lld\n",Sol);
}
else printf("0\n");
}
else
{
Sol=1;
for(i=2;i<=nr;i++)
Sol*=i;
printf("%lld",rand()%Sol+1);
}
return 0;
}