Cod sursa(job #3186341)

Utilizator Tudor_11Tudor Ioan Calin Tudor_11 Data 22 decembrie 2023 19:14:03
Problema Sum Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sum.in");
ofstream fout("sum.out");
bool fol[1000001];
int divizori[7];
int div_primi(int x)
{
    int m=0,d=2;
    bool p;
    while(x>1)
    {
        p=0;
        while(x%d==0)
        {
            x/=d;
            p=1;
        }
        if(p==1)
        {
            divizori[m]=d;
            m++;
        }
        d++;
        if(x>1 && d*d>x) d=x;
    }
    return m;
}
void reset(int x)
{
    for(int i=1;i<=x;i++) fol[i]=0;
    for(int i=0;i<7;i++) divizori[i]=0;
}
int main()
{
    int n,x,m,j,s;
    fin>>n;
    for(int i=0;i<n;i++)
    {
        fin>>x;
        s=0;
        reset(x);
        m=div_primi(x);
        for(int j=0;j<m;j++)
        {
            for(int u=1;u<=x;u++)
            {
                if(u%divizori[j]==0)
                {
                    fol[u]=1;
                }
            }
        }
        for(int j=1;j<=x;j++)
        {
            if(fol[j]==0)
            {
                s+=2*j+x;
            }
        }
        fout<<s<<'\n';
    }
    return 0;
}