Cod sursa(job #1363882)

Utilizator Darius15Darius Pop Darius15 Data 27 februarie 2015 12:27:39
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include <bitset>
#include <cmath>
using namespace std;
ifstream f("sum.in");
ofstream g("sum.out");
int t,i,j,x,c,z,str,l,div[25001];
bitset <100001> viz;
long long s[200001],ras;
int main()
{
    for (i=2;i<=100000;i++)
        if (viz[i]==false)
    {
        j=i*i;
        if (j/i==i)
            for (j=i*i;j<=100000;j+=i)
            viz[j]=true;
    }
    f>>t;
    for (i=1;i<=200000;i++)
        s[i]=s[i-1]+i;
    for (i=1;i<=t;i++)
    {
        bitset <200001> e;
        f>>x;
        str=x;
        c=sqrt(x);
        l=0;
        for (j=2;j<=c;j++)
        if (str%j==0 && viz[j]==false)
        {while(str%j==0)
        str/=j;
        div[++l]=j;
        }
       if (str==x) g<<s[2*x]-3*x<<'\n';
       else
       {
           if (str>1) div[++l]=str;
           ras=s[2*x];
           for (j=1;j<=l;j++){
              for (z=div[j];z<=2*x;z+=div[j])
                if (e[z]==false)
                  e[z]=true,ras-=z;
           }
                g<<ras<<'\n';
       }

    }
    return 0;
}