Cod sursa(job #505451)

Utilizator matei_cChristescu Matei matei_c Data 2 decembrie 2010 15:35:42
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<math.h>

int prim[ ]={2,3,5};
int nr[ 3] ;

void func( int x,int k )
{
	for(int i=0;i<=2;++i)
	{
		while( x % prim[i ] == 0)
		{
			nr[ i ] += k;
			x/= prim[i];
		}
		
	}
}

int D, last;
long long R,n;
int main()
{
	long long i;
	freopen("pascal.in","r",stdin);
	freopen("pascal.out","w",stdout);
	scanf("%lld%d",&R,&D);
	for(i=1;i<=(R-1)/2 + (R-1) % 2;i++)
	{
		int aux = n;
		func( R - i + 1 , 1);
		func( i , -1 );
		if(D==6)
			if(nr[1]>=1 && nr[0]>=1)
				n++;
		if(D==5)
			if(nr[2]>=1)
				n++;
		if(D==4)
			if(nr[0]>=2)
				n++;
		if(D==3)
			if(nr[1]>=1)
				n++;
		if(D==2)
			if(nr[0]>=1)
				n++;
		last = n - aux;
	}	
	if( (R -1 ) % 2 == 1)
		n = n * 2 - last;
	else n = n * 2;
	printf("%lld\n",n);
	return 0;
}