Pagini recente » Cod sursa (job #3189284) | Cod sursa (job #576698) | Cod sursa (job #647981) | Cod sursa (job #2423824) | Cod sursa (job #1380318)
#include <fstream>
#include <cmath>
#define nmax 200050
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int N, x, desc[nmax / 10];
bool v[nmax];
int des(){
int nrDiv = 0, rad = sqrt(x) + 1, aux = x;
if(aux % 2 == 0){
desc[++nrDiv] = 2;
do{
aux /= 2;
}while(aux % 2 == 0);
}
for(int i = 3; i <= rad ; i += 2)
if(aux % i == 0){
desc[++nrDiv] = i;
do{
aux /= i;
}while(aux % i == 0);
}
if(nrDiv == 0) desc[++nrDiv] = aux;
return nrDiv;
}
int main()
{int z, i, j, nr, X, S;
f>>N;
for(z = 1; z <= N; ++z){
f>>x;
S = 0;
X = x * 2;
nr = des();
for(i = 1; i <= nr; ++i)
for(j = desc[i]; j <= X; j += desc[i])
v[j] = true;
for(i = 1; i <= X; ++i)
S += i * !v[i];
g<<S<<'\n';
for(i = 1; i <= X; ++i){
v[i] = false;
}
}
return 0;
}