Pagini recente » Cod sursa (job #2634792) | Cod sursa (job #294497) | Cod sursa (job #2406924) | Cod sursa (job #2289929) | Cod sursa (job #168014)
Cod sursa(job #168014)
#include<fstream.h>
#include<math.h>
#define dim 200000
int prim(unsigned long y)
{unsigned long jum;
jum=sqrt(y);
unsigned long yy;
if(y==2) return 1;
if((y%2)==0) return 0;
for(yy=3;yy<=jum;yy=yy+2)
{if((y%yy)==0) return 0;
}
return 1;
}
unsigned long v[dim],xx2;
ifstream f("sum.in");
ofstream g("sum.out");
unsigned long x,n,i,j,x2,jj,max,xx,l;
int main()
{
f>>n;
for(i=1;i<=n;i++)
{f>>x;
x2=((x*2)*((x*2)+1))/2;
if(prim(x)) g<<(x2-x-(2*x))<<'\n';
else
{xx=x*2;
for(j=1;j<=xx;j++) v[j]=0;
jj=x/2;
if(x%2)
{for(j=3;j<=jj;j=j+2)
if(!v[j])
if((prim(j))&&(x%j==0))
for(l=j;l<=xx;l=l+j)
if(!v[l])
{v[l]=1;
x2-=l;
}
if(!v[x]) x2-=x;
if(!v[xx]) x2-=xx;
g<<x2<<'\n';
}
else
{for(j=2;j<=xx;j+=2)
{v[j]=1;
x2-=j;
}
for(j=3;j<=jj;j=j+2)
if(!v[j])
if((prim(j))&&(x%j==0))
for(l=j;l<=xx;l=l+j)
if(!v[l])
{v[l]=1;
x2-=l;
}
if(!v[x]) x2-=x;
if(!v[xx]) x2-=xx;
g<<x2<<'\n';
}
}
}
f.close();
g.close();
return 0;
}