Cod sursa(job #1018448)
| Utilizator | Data | 29 octombrie 2013 17:12:29 | |
|---|---|---|---|
| Problema | Sum | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <fstream>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
char prim[200001];
long long t;
void descompunere(int k)
{
int d=2, m;
while(k>1)
{
m=0;
while(k%d==0)
{
k=k/d;
m++;
}
if(m)
for(int i=d; i<=t; i=i+d)
prim[i]=1;
d++;
}
}
int main()
{
long long n, x, i, j, s;
f>>n;
for(i=1; i<=n; i++)
{
f>>x; t=2*x; s=0;
descompunere(x);
for(j=1; j<=t; j++)
if(!prim[j])
s=s+j;
else
prim[j]=0;
g<<s<<'\n';
}
f.close(); g.close();
return 0;
}
