Pagini recente » Cod sursa (job #1306385) | Cod sursa (job #126027) | Cod sursa (job #1588069) | Cod sursa (job #2410092) | Cod sursa (job #183576)
Cod sursa(job #183576)
#include<fstream.h>
int fac[5],q,d,p,k;
long i,sol=0,n,aux;
struct sir {long 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;
}