Pagini recente » Cod sursa (job #1390923) | Cod sursa (job #517606) | Cod sursa (job #2609304) | Cod sursa (job #2232998) | Cod sursa (job #465704)
Cod sursa(job #465704)
#include<cstdio>
#include<string.h>
using namespace std;
int a[20],v[20];
char sir[22];
long long rez;
long long fact (int n)
{
long long rezult=1;
for (int i=2; i<=n; i++)
rezult*=i;
if (n==0) return 1;
return rezult;
}
int main ()
{
int ka1,ka2,ok,n,nr,i,cont,sum_cif;
freopen("ratphu.in","r",stdin);
freopen("ratphu.out","w",stdout);
scanf("%s",&sir);
ok=0; ka1=0; ka2=0;
for (i=0; i<strlen(sir); i++)
{
if (sir[i]==' ') ok=1;
else if (ok==0)
v[++ka1]=int(sir[i])-'0';
}
scanf("%d",&nr);
n=ka1;
if (nr==2)
{
cont=0;
for (i=1; i<=n; i++)
if (v[i]%2==0) cont++;
rez=fact(n-1)*cont;
printf("%I64d",rez);
}
else if (nr==3)
{
sum_cif=0;
for (i=1; i<=n; i++)
sum_cif+=v[i];
if (sum_cif%3==0)
{
rez=fact(n);
printf("%I64d",rez);
}
else printf("0");
}
else if (nr==6)
{
sum_cif=0;
for (i=1; i<=n; i++)
sum_cif+=v[i];
cont=0;
for (i=1; i<=n; i++)
if (v[i]%2==0) cont++;
if (sum_cif%3==0)
{
rez=fact(n-1)*cont;
printf("%I64d",rez);
}
else printf("0");
}
else if (nr==9)
{
sum_cif=0;
for (i=1; i<=n; i++)
sum_cif+=v[i];
if (sum_cif%9==0)
{
rez=fact(n);
printf("%I64d",rez);
}
else printf("0");
}
else if (nr==5)
{
cont=0;
for (i=1; i<=n; i++)
if (v[i]%5==0) cont++;
rez=fact(n-1)*cont;
printf("%I64d",rez);
}
else if (nr==15)
{
sum_cif=0;
for (i=1; i<=n; i++)
sum_cif+=v[i];
if (sum_cif%3==0)
{
cont=0;
for (i=1; i<=n; i++)
if (v[i]%5==0) cont++;
rez=fact(n-1)*cont;
printf("%I64d",rez);
}
else printf("0");
}
return 0;
}