Pagini recente » Diferente pentru template/algoritmiada-2015/header intre reviziile 7 si 6 | Diferente pentru template/algoritmiada-2015/header intre reviziile 4 si 5 | Cod sursa (job #3361559) | Cod sursa (job #3361331) | Cod sursa (job #3362019)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("sum.in");
ofstream fout("sum.out");
bool v[100005];
int fr[200005];
int main()
{
int n,x;
fin>>n;
v[0]=1;
v[1]=1;
for(int j=2; j*j<=100000; j++)
{
if(v[j]==0)
for(int k=2; k<=100000/j; k++)
v[j*k]=true;
}
for(int i=0; i<n; i++)
{
long long s=0;
fin>>x;
for(int j = 0; j <= 2 * x; j++)
fr[j] = 0;
int xt=x,p=2;
while(xt>1)
{
if(v[p]==false&&xt%p==0)
{
while(!(xt%p))
xt/=p;
for(int j=p; j<=2*x; j+=p)
{
fr[j]=1;
}
}
p++;
while(v[p])
p++;
}
for(int j=2*x-1; j>=2; j--)
if(fr[j]==0)
{
s+=j;
}
s++;
fout<<s<<'\n';
}
return 0;
}