Pagini recente » Cod sursa (job #1693153) | Cod sursa (job #1812433) | Cod sursa (job #2856151) | Cod sursa (job #2177197) | Cod sursa (job #1363882)
#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,div[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;
div[++l]=j;
}
if (str==x) g<<s[2*x]-3*x<<'\n';
else
{
if (str>1) div[++l]=str;
ras=s[2*x];
for (j=1;j<=l;j++){
for (z=div[j];z<=2*x;z+=div[j])
if (e[z]==false)
e[z]=true,ras-=z;
}
g<<ras<<'\n';
}
}
return 0;
}