Cod sursa(job #2091022)

Utilizator catalinpuricoicatalinpuricoi catalinpuricoi Data 19 decembrie 2017 00:46:59
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 1.56 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int n,i,nrdiv,nr,m,j;
long long x,putere,x2,suma;
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
    {
        f>>x;
        suma=0;
        nrdiv=0;
        for(j=1;j*j<=x;j++)
            if(x%j==0)
            {
                nrdiv=nrdiv+2;
                suma=suma+j+(x/j);
            }
        if(sqrt(x)==int(sqrt(x)))
        {
            nrdiv--;
            suma=suma-sqrt(x);
        }
        g<<nrdiv<<' '<<suma;
        if(i!=n)
            g<<'\n';
    }
    /*for(i=1; i<=n; i++)
    {
        f>>x;
        m=2;
        nrdiv=1;
        suma=1;
        x2=x;
        if(x>1)
        {
            while(m*m<=x2)
            {
                nr=0;
                putere=1;
                while(x%m==0)
                {
                    x=x/m;
                    putere=putere*m;
                    nr++;
                }
                if(nr!=0)
                {
                    putere=putere*m;
                    nrdiv=nrdiv*(nr+1);
                    suma=suma*((putere-1)/(m-1));
                }
                if(m>=3)
                    m=m+2;
                else
                    m++;
            }
            if(x != 1)
            {
                nrdiv *= 2;
                putere=putere*x2*x2;
                suma=suma*((putere-1)/(x2-1));
            }
        }
        g<<nrdiv<<' '<<suma;
        if(i!=n)
            g<<'\n';
    }*/
    return 0;
}