Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #183556)
Cod sursa(job #183556)
#include<fstream.h>
int fac[5],q,d,i,j,n,aux,p,sol=0,k;
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++;
}
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(k==2)
{if(aux%fac[2]==0)
while(aux%fac[2]==0)
{p++; aux/=fac[2];}
v[i].y=v[i-1].y+p;
}
}
if(k==2)
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++;}
else
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;
}