Cod sursa(job #1785069)

Utilizator Bodo171Bogdan Pop Bodo171 Data 20 octombrie 2016 20:57:02
Problema Sum Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include<fstream>
using namespace std;
const int nmax=100000;
int n,i,j,nrdiv[nmax+5],x;
long long sum[nmax+5],t,q,ind;
int main()
{
    ifstream f("sum.in");
    freopen("sum.out","w",stdout);
    f>>n;
    for(i=2;i<=nmax;i++)
    {
      if(nrdiv[i]!=-1)
        for(j=i;j<=nmax;j+=i)
        {
            if(nrdiv[i]<2)
            {
            if(nrdiv[j]!=-1)nrdiv[j]++;
            if((j/i)%i==0) nrdiv[j]=-1;
            }
            t=(2*j)/i;
            ind=i;
            q=ind*t*(t+1)/2;
            if(nrdiv[i]%2==0) sum[j]+=q;
            else sum[j]-=q;
        }
    }
    for(i=1;i<=nmax;i++)
        sum[i]+=i*(2*i+1);
    for(i=1;i<=n;i++)
    {
        f>>x;
        printf("%lld\n",sum[x]);
    }
    return 0;
}