Cod sursa(job #395025)
Utilizator | Data | 11 februarie 2010 22:58:04 | |
---|---|---|---|
Problema | Sum | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include<fstream>
#define inf "sum.in"
#define outf "sum.out"
#define MAX 100010
using namespace std;
fstream f(inf,ios::in),g(outf,ios::out);
int N,X;
int phi[MAX];
bool uz[MAX];
int main()
{
long long i,j,sum;
for(i=1;i<=MAX;i++)phi[i]=i-1;
for( i=2;i<=MAX;i++)
if( !uz[i] )
{
if( 2*i <= MAX )
for(j=2*i;j<=MAX;j+=i)
{
uz[j]=true;
phi[j]-=phi[i];
}
}
f>>N;
for(int i=1;i<=N;i++)
{
f>>X;
sum=2*X*phi[X];
g<< sum <<"\n";
}
f.close();
g.close();
return 0;
}