Cod sursa(job #3337655)

Utilizator mhyasdArdelean Mihai mhyasd Data 29 ianuarie 2026 12:39:25
Problema Sum Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("sum.in");
ofstream fout("sum.out");
int ciur[100001];
int factori[100001][11];
int nrfactori[100001];

int main()
{
    nrfactori[2]=2;
    for(int i=2;i<=100000;i++) {
        if(ciur[i]==0) {
            for(int j=1;i*j<=100000;j++) {
                ciur[i*j]=1;
                nrfactori[i*j]++;
                factori[i*j][nrfactori[i*j]]=i;
            }
        }
    }
    int n,x,y,z,a,cnt,ras=0,k;
    fin>>n;
    for(int i=1;i<=n;i++) {
        fin>>x;
        k=1;
        for(int j=1;j<=nrfactori[x];j++) k*=2;
        k--;
        ras=0;
        for(int j=1;j<=k;j++) {
            y=1;
            z=j;
            a=1;
            cnt=0;
            while(z) {
                if(z%2==1) {
                    y*=factori[x][a];
                    cnt++;
                }
                a++;
                z/=2;
            }
            if(y) {
            if(cnt%2==1) ras+=y*(2*x/y)*(2*x/y+1)/2;
            else ras-=y*(2*x/y)*(2*x/y+1)/2;}
        }
        fout<<x*(2*x+1)-ras<<'\n';
    }
    return 0;
}