Cod sursa(job #166636)

Utilizator raduzerRadu Zernoveanu raduzer Data 28 martie 2008 11:28:34
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>

int n,d,a[8],b[8],z;

int main()
{
	freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);
	scanf("%d%d",&n,&d);
	int i,j;
	for (i=2; i<=d; ++i)
	{
		while (d%i==0) 
		{
			++a[i];
			d/=i;
		}
	}
	int x;
	int sol=0;
	z=0;
	for (i=1; i<=n/2; ++i)
	{
		x=n-i+1;
		for (j=2; j<=5; ++j)
		{
			while (x%j==0)
			{
				++b[j];
				x/=j;
			}
		}
		x=i;
		for (j=2; j<=5; ++j)
		{
			while (x%j==0)
			{
				--b[j];
				x/=j;
			}
		}
		int q=0;
		for (j=2; j<=5; ++j)
		{
			if (a[j]>b[j])
			{
				q=1;
				break;
			}
		}
		if (q==0) ++sol;
		if (q==0 && i==n/2) z=1;
	}
	sol=sol*2;
	if (n%2==0 && z==1) --sol;
	printf("%d\n",sol);
	return 0;
}