Cod sursa(job #2392149)

Utilizator AndreiStrAndrei Stroici AndreiStr Data 29 martie 2019 18:43:08
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
const long long N=1000000000000;
long long s;
long long n,a,x;
long long prim(long long x)
{
    int e=1,rez=1,s=0,y=x;
    for(int d=2; d*d<=x; d++)
        if(x%d==0)
        {
            s+=d;
            s+=x/d;
            e=1;
            while(y%d==0)
            {
                e++;
                y/=d;
            }
            rez*=e;
        }
    if(y>1)
        rez*=2;
    return rez;
}
long long suma_div(long long x)
{
    long long s;
    for(int d=2;d*d<=x;d++)
            if(x%d==0)
            {
                s+=d;
                s+=(x/d);
            }
    return s;
}

int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
    {
        f>>x;
        s+=x;
        s+=1;
        g<<prim(x)<<' '<<suma_div(x)<<'\n';
    }
    return 0;
}