Pagini recente » Cod sursa (job #3360921) | Cod sursa (job #3360543) | Cod sursa (job #3243751) | Cod sursa (job #3360886) | Cod sursa (job #3360884)
#include <fstream>
using namespace std;
ifstream fin("sum.in");
ofstream fout("sum.out");
const int NMAX=200001;
int v[NMAX];
void marcaremultipliid(int &d,int &copiex){
for(int i=d;i<=2*copiex;i+=d){
v[i]=1;
}
}
void descompinfctprimi(int &x,int &copiex){
int d=2;
while(d*d<=x){
if(x%d==0){
while(d*d<=x){
x/=d;
}
marcaremultipliid(d,copiex);
}
d=d+1+d%2;
}
if(x>1){
marcaremultipliid(x,copiex);
}
}
int main()
{
int n,x,sum=0,copiex;
fin>>n;
for(int i=1;i<=n;i++){
fin>>x;
copiex=x;
sum=0;
for(int j=1;j<=2*x;j++){
v[j]=0;
}
descompinfctprimi(x,copiex);
for(int y=1;y<=2*copiex;y++){
if(v[y]==0){
sum+=y;
}
}
fout<<sum<<'\n';
}
return 0;
}