Cod sursa(job #1058247)

Utilizator andreeadeacAndreea Ioana Deac andreeadeac Data 15 decembrie 2013 12:27:00
Problema Sum Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
using namespace std;

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

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

int main(){
    int n,nr=0,i,j,k,x;
    long long s;
    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++)
        //    g<<v[i]<<" ";
        //g<<"\n";
        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;
}