Cod sursa(job #3159513)

Utilizator ada_454Ada Rotunjanu ada_454 Data 21 octombrie 2023 14:50:52
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;
ifstream cin("ssnd.in");
ofstream cout("ssnd.out");

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';
    }
}