Cod sursa(job #3159511)

Utilizator ada_454Ada Rotunjanu ada_454 Data 21 octombrie 2023 14:44:46
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>

using namespace std;
void ssnd(long long n, int& nrd, long long &sum){
    nrd = 1, sum = 1;
    int d = 2;
    while(d * d <= n){
        if(n%d == 0){
            long long exp = 1;
            int p = 0;
            while(n % d == 0){
                p++;
                exp *= d;
                n /= d;
            }
            nrd *= (p+1);
            sum *= (exp*d - 1)/(d-1);
        }
        d++;
    }
    if(n != 1){
        nrd *= 2;
        sum *= (n*n - 1)/(n-1);
    }
}
int main()
{
    int t;
    cin>>t;
    for ( ; t; t--){
        long long n, sum;
        int nrd;
        cin>>n;
        ssnd(n, nrd, sum);
        cout<<nrd<<' '<<sum<<'\n';
    }
}