Cod sursa(job #1207148)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 12 iulie 2014 13:46:21
Problema Sum Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#define NMAX 100000
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int N;
bool isPrime[NMAX+5];
int Phi[NMAX+5];

void initializePhi()
{
    for(int i=1;i<=NMAX;i++)
        Phi[i]=i-1;
}

void Eratostenes()
{
    int i,j;
    for(i=2;i*2<=NMAX;i++)
        if(isPrime[i]==0)
            for(j=i+i;j<=NMAX;j+=i)
            {
                isPrime[j]=1;
                Phi[j]-=Phi[j]/i;
            }
}

void getSolutions()
{
    int X;
    for(int i=1;i<=N;i++)
    {
        f>>X;
        g<<2LL*X*Phi[X]<<"\n";
    }
}

int main()
{
    f>>N;
    initializePhi();
    Eratostenes();
    getSolutions();
    return 0;
}