Cod sursa(job #183570)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 22 aprilie 2008 13:00:46
Problema Pascal Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<fstream.h>
int fac[5],q,d,p,k;
long long i,sol=0,n,aux;
struct sir {int x,y;};
sir v[5000010];
int main()
{
ifstream f("pascal.in");
ofstream g("pascal.out");

f>>n>>q;

d=2;
while(q!=1)

  { if(q%d==0)

    while(q%d==0)

    {fac[++k]=d; q/=d;}

    d++;

  }

if(k==2)

{

for(i=1;i<=n;i++)


  {

      aux=i; p=0;


	   if(aux%fac[1]==0)

	      while(aux%fac[1]==0)

	       {p++; aux/=fac[1];}

       v[i].x=v[i-1].x+p;


     aux=i; p=0;



      if(aux%fac[2]==0)

	      while(aux%fac[2]==0)

	       {p++; aux/=fac[2];}

       v[i].y=v[i-1].y+p;

   }


 for(i=1;i<=n;i++)

  { if(v[n].x-v[i].x-v[n-i].x>0&&v[n].y-v[i].y-v[n-i].y>0) sol++;}

g<<sol;
}

else

 {for(i=1;i<=n;i++)


  {

      aux=i; p=0;


	   if(aux%fac[1]==0)

	      while(aux%fac[1]==0)

	       {p++; aux/=fac[1];}

       v[i].x=v[i-1].x+p;



   }


 for(i=1;i<=n;i++)

  { if(v[n].x-v[i].x-v[n-i].x>0) sol++;}

g<<sol;
}




f.close();
g.close();
return 0;
}