Cod sursa(job #1463530)

Utilizator TimoteiCopaciu Timotei Timotei Data 21 iulie 2015 09:05:40
Problema Sum Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<fstream>

using namespace std;
int t,x,n=1,m,p,prim[200004],v[10000],u[10000],sol;
int main()
{
    ifstream f("sum.in");
    ofstream g("sum.out");
    for(int i=2;i<=317;i++)
        if(prim[i]==0)for(int j=2;j<=100000/i;j++)prim[i*j]=1;
     v[1]=2;
    for(int i=3;i<=99999;i+=2)if(prim[i]==0)
    {
        n++;
        v[n]=i;
    }
    f>>t;
    for(int i=1;i<=t;i++)
    {
        f>>x;
        int z=x;
        if(prim[x]==0)g<<(x-1)*2*x<<"\n";
        else
        { p=1;
        sol=0;
           m=0;
            while(x>1)
            {
                if(x%v[p]==0)
                {
                    m++;
                    u[m]=v[p];
                    while(x%v[p]==0)x=x/v[p];
                }
                else p++;
            }
            for(int j=1;j<=z*2;j++)
            {
            int ok=0;
            for(int k=1;k<=m;k++)if(j%u[k]==0)
            {
                ok=1;
                break;
            }

            if(ok==0)sol+=j;
            }
            g<<sol<<"\n";
        }
    }

    return 0;
}