Pagini recente » Cod sursa (job #3039706) | Cod sursa (job #1941031) | Cod sursa (job #2174092) | Cod sursa (job #2923684) | Cod sursa (job #1363883)
#include <fstream>
#include <bitset>
#include <cmath>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int t,i,j,x,c,z,str,l,d[25001];
bitset <100001> viz;
long long s[200001],ras;
int main()
{
for (i=2;i<=100000;i++)
if (viz[i]==false)
{
j=i*i;
if (j/i==i)
for (j=i*i;j<=100000;j+=i)
viz[j]=true;
}
f>>t;
for (i=1;i<=200000;i++)
s[i]=s[i-1]+i;
for (i=1;i<=t;i++)
{
bitset <200001> e;
f>>x;
str=x;
c=sqrt(x);
l=0;
for (j=2;j<=c;j++)
if (str%j==0 && viz[j]==false)
{while(str%j==0)
str/=j;
d[++l]=j;
}
if (str==x) g<<s[2*x]-3*x<<'\n';
else
{
if (str>1) d[++l]=str;
ras=s[2*x];
for (j=1;j<=l;j++){
for (z=d[j];z<=2*x;z+=d[j])
if (e[z]==false)
e[z]=true,ras-=z;
}
g<<ras<<'\n';
}
}
return 0;
}