Cod sursa(job #2306702)

Utilizator MoldovanAndrei1Moldovan Andrei MoldovanAndrei1 Data 22 decembrie 2018 19:44:51
Problema Sum Scor 65
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>
using namespace std;
int sol[100005];
int main()
{
    freopen("sum.in","r",stdin);
    freopen("sum.out","w",stdout);
    int k,n,i;
    scanf("%d",&k);
    for(i=1;i<=k;i++)
    {
        scanf("%d",&n);
        int d=2,e=0;
        long long sum=0;
        int cn=n;
        while(d*d<=n)
        {
            e=0;
            while(n%d==0)
            {
                n/=d;
                e++;
            }
            if(e)
            {
                int j=d;
                for(;j<=cn;j+=d)
                    sol[j]=1;
            }
            d++;
        }
        if(n>1)
        {
            int j=n;
            for(;j<=cn;j+=n)
                sol[j]=1;
        }
        int cnt=0;
        for(int j=1;j<=cn;j++)
        {
            sum+=(1-sol[j])*j;
            cnt+=1-sol[j];
            sol[j]=0;
        }
        sum*=2;
        sum+=1LL*cnt*cn;
        printf("%lld\n",sum);
    }
    return 0;
}