Cod sursa(job #2440813)

Utilizator mihai03Mihai Grigore mihai03 Data 19 iulie 2019 13:36:41
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int t;
long long putere(long long a, long long b)
{
    long long rez = 1;
    for(long long i = 1; i <= b; i++)
        rez *= a;
    return rez;
}
int main()
{
    fin >> t;
    for(int i = 1; i <= t; i++)
    {
        long long n;
        long long ans1 = 1;
        long long ans2 = 1;
        fin >> n;
        int d = 2;
        while(n > 1)
        {
            int p = 0;
            while(n % d == 0)
            {
                p++;
                n /= d;
            }
            if(p)
            {
                ans1 *= (p + 1);
                ans2 *= (putere(d, p+1) - 1) / (d - 1);
            }
            d++;
            if(n > 1 && d * d > n)
                d = n;
        }
        fout << ans1 << " " << ans2 << endl;
    }
    return 0;
}