Cod sursa(job #2354482)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 25 februarie 2019 12:38:54
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>

using namespace std;

ifstream f("ssnd.in");
ofstream g("ssnd.out");

int t,i,j;
long long x,nr,s,div;

void nrdiv_sumadiv(long long x)
{
    long long d;
    nr=1;
    s=1;
    int k;
    for (d=2;d*d<=x;d++)
    {
        k=0;
        while (x%d==0)
        {
            x=x/d;
            k++;
        }
        if (k)
        {
            nr=nr*(k+1);

            div=1;
            for (int i=1;i<=k+1;i++)
                div=div*d;
            s=s*(div-1)/(d-1);
        }
    }
    if (x>1)
    {
        nr=nr*2;
        s=s*(x*x-1)/(x-1);
    }
}

int main()
{
    f>>t;
    for (i=1;i<=t;i++)
    {
        f>>x;
        nrdiv_sumadiv(x);
        g<<nr<<" "<<s<<"\n";
    }
    return 0;
}