Cod sursa(job #596938)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 20 iunie 2011 11:06:40
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>

using namespace std;

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