Cod sursa(job #128210)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 26 ianuarie 2008 17:33:36
Problema Pascal Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<stdio.h>
long long int r,d,q2,q3,q5,up,down,cont,i;
int main()
{
	FILE *f,*g;f=fopen("pascal.in","r");g=fopen("pascal.out","w");
	fscanf(f,"%lld%lld",&r,&d);
	if(d==2)for(i=1;i<=r;i++)
	   {up=r+1-i;down=i;
	    while(up%2==0){q2++;up/=2;}
	    while(down%2==0){q2--;down/=2;}
	    if(q2>=1)cont++;
	   }
	if(d==3)
	 for(i=1;i<=r;i++)
	  {up=r+1-i;down=i;
	   while(up%3==0){q3++;up/=3;}
	   while(down%3==0){q3--;down/=3;}
	   if(q3>=1) cont++;
	  }
	if(d==4)
	 for(i=1;i<=r;i++)
	   {up=r+1-i;down=i;
	    while(up%2==0){q2++;up/=2;}
	    while(down%2==0){q2--;down/=2;}
	    if(q2>=2) cont++;
	   }
	if(d==5)
	 for(i=1;i<=r;i++)
	   {up=r+1-i;down=i;
	    while(up%5==0){q5++;up/=5;}
	    while(down%5==0){q5--;down/=5;}
	   if(q5>=1) cont++;
	   }
	if(d==6)
	  for(i=1;i<=r;i++)
	   {for(;;);up=r+1-i;down=i;
	    while(up%2==0){q2++;up/=2;}
	    while(down%2==0){q2--;down/=2;}
	    while(up%3==0){q3++;up/=3;}
	    while(down%3==0){q3--;down/=3;}
	    if((q2>=1)&&(q3>=1))cont++;
	}
	fprintf(g,"%lld\n",cont);
	fcloseall();
	return 0;
}