Cod sursa(job #3199695)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 2 februarie 2024 15:47:02
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const int Max = 1000000;
long long t, n;

static inline void Calc() {
    long long nrd = 1, sum = 1;
    fin >> n;
    long long d = 2;
    while(d * d <= n) {
        long long e = 0;
        long long p = d;
        while(n % d == 0) {
            e++;
            p *= d;
            n /= d;
        }

        if(e) {
            sum *= (p - 1) / (d - 1);
            nrd *= e + 1;
        }

        d++;
    }
    if(n > 1) {
        sum *= (n * n - 1) / (n - 1);
        nrd *= 1 + 1;
    }

    fout << nrd << " " << sum << "\n";
}

int main() {
    fin >> t;
    while(t--) Calc();

    return 0;
}