Cod sursa(job #1058208)

Utilizator andreeadeacAndreea Ioana Deac andreeadeac Data 15 decembrie 2013 11:30:36
Problema Sum Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
using namespace std;

ifstream f("sum.in");
ofstream g("sum.out");

const int N=200001;
int e[N],v[N/2],c[N/2+1];

int main(){
    int n,nr=0,i,j,s,k,x;
    f>>x;
    for(k=1;k<=x;k++)
        f>>c[k];
    for(k=1;k<=x;k++){
        s=0;
        nr=0;
        n=c[k];
        for(i=1;i<=2*n;i++)
            e[i]=i;
        if(n%2==0){
            nr++;
            v[nr]=2;
        }
        for(i=3;i<=n;i+=2)
            if(n%i==0){
                nr++;
                v[nr]=i;
            }
        for(i=1;i<=nr;i++)
            if(e[v[i]]==v[i])
                for(j=v[i];j<=2*n;j+=v[i])
                    e[j]=e[j]/v[i]*(v[i]-1);
        for(i=1;i<=2*n;i++)
            if(e[i]==i)
                s=s+i;
        g<<s<<"\n";
    }
    return 0;
}