Cod sursa(job #179509)

Utilizator pandaemonAndrei Popescu pandaemon Data 15 aprilie 2008 23:19:04
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<stdio.h>
#include<iostream.h>
#define RMAX 5000001

long r,aux,i,j,sol,d,fac1[RMAX],fac2[RMAX];

void putere_2(long &x)
{
  long var=2;

  while( i/var > 0)
  {
    x += i/var;

    var = (var << 1); }

}

void putere_f(long &x, long d)
{
   long var=d;

   while( i/var > 0 )
   {
     x += i/var;

     var *= d; }

}

int main()
{
 freopen("pascal.in","r",stdin);
 freopen("pascal.out","w",stdout);

 scanf("%ld %ld",&r,&d);

 if(d==4)    for(i=1;i<=r;i++)  putere_2(fac1[i]);


 if(d==6)    for(i=1;i<=r;i++) { putere_2(fac1[i]);
				 putere_f(fac2[i], 3); }


 if(d==3 || d==5)
	     for(i=1;i<=r;i++) putere_f(fac1[i], d);

 if(d==2)    for(i=1;i<=r;i++)  putere_2(fac1[i]);


 for(i=0; i<=r; i++)
 {
   if(d==4) {
	      if( fac1[r] - fac1[r-i] - fac1[i] > 1 ) sol++;

	      continue;  }

   if(d==6) {
      if ( (fac1[r] - fac1[r-i] - fac1[i] > 0)
	   && (fac2[r] - fac2[r-i] - fac2[i] > 0)  ) sol++;

	   continue; }

   if( fac1[r] - fac1[r-i] - fac1[i] > 0 ) sol++;
 }


 printf("%ld\n",sol); return 0;
}