Cod sursa(job #34784)

Utilizator pocaituDavid si Goliat pocaitu Data 21 martie 2007 13:40:45
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
long n,i,d1,d2,c,nr1,nr2,k,dd,h;
int d;
long cmmdc(long a,long b)
{if(!b) return a;
 else
   return cmmdc(b,a%b);
 }

int main()
{freopen("pascal.in","r",stdin);
 scanf("%ld%ld",&n,&d);
 if(d!=6)
  {if(d==4) {h=1;d/=2;}
  for(i=1;i<n;i++)
   {//c=cmmdc(n-i+1,i);
	d1=(n-i+1);
	d2=i;
	if(!(d1%d))
	  while(!(d1%d))
		{d1/=d;
		 nr1++;
		 }
	if(!(d2%d))
	  while(!(d2%d))
		{d2/=d;
		 nr1--;
		 }
	if(nr1>0&&!h)
	  k++;
	else if(nr1>1&&h)
	  k++;
	}
   }

 else
  {dd=d/3;
   d=d/dd;
   for(i=1;i<n;i++)
   {
   d1=(n-i+1);
   d2=i;
   if(!(d1%d)&&d1)
	  while(!(d1%d)&&d1)
		{d1/=d;
		 nr1++;
		 }
	if(!(d1%dd)&&d1)
	  while(!(d1%dd)&&d1)
		{d1/=d;
		 nr2++;
		 }

	if(!(d2%d))
	  while(!(d2%d)&&d2)
		{d2/=d;
		 nr1--;
		 }
	else if(!(d2%dd)&&d2)
	  while(!(d2%dd)&&d2)
		{d2/=d;
		 nr2--;
		 }
	if(nr1&&nr2)
	  k++;
	}
	 }





  freopen("pascal.out","w",stdout);
  printf("%ld",k);
  fclose(stdout);
  return 0;
  }