Cod sursa(job #359898)

Utilizator ooctavTuchila Octavian ooctav Data 28 octombrie 2009 19:08:33
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<cstdio>
int r,d,n=0;
int div[10];

void cons()
{
	int r2=r;
	for(int i=2;i<=5;i++)
		while(r2%i==0)
		{
			r2=r2/i;
			div[i]++;
		}
}
void daca()
{
	if(d==2 || d==3 || d==5)
		if(div[d])
			n++;
	if(d==4)
		if(div[2]>=2)
			n++;
	if(d==6)
		if(div[2] && div[3])
			n++;
}
void transf(int j)
{
	int a,b;
	a=r-j;
	b=j+1;
	for(int i=2;i<=5;i++)
		while(a%i==0)
		{
			a=a/i;
			div[i]++;
		}
	for(int i=2;i<=5;i++)
		while(b%i==0)
		{
			b=b/i;
			div[i]--;
		}
}
int main()
{

	freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);
	scanf("%d %d",&r,&d);
	cons();
	daca();
	for(int j=2;j<=(r-1)/2;j++)
	{
		transf(j-1);
		daca();
	}
	n=2*n;
	if((r-1)%2==1)
	{
		transf((r-1)/2+1);
		daca();
	}

	
	printf("%d",n);
	
	return 0;
}