Cod sursa(job #2091021)

Utilizator catalinpuricoicatalinpuricoi catalinpuricoi Data 19 decembrie 2017 00:30:13
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int n,i,nrdiv,nr,m;
long long x,putere,x2,suma;
int main()
{
    f>>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<<'\n';
    }
    return 0;
}