Cod sursa(job #2914605)

Utilizator alexandru_ioan.06Alexandru Ioan alexandru_ioan.06 Data 20 iulie 2022 14:38:27
Problema Suma si numarul divizorilor Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
#define MOD 9973
using namespace std;
ifstream cin ("ssnd.in");
ofstream cout ("ssnd.out");
long long NrDiv(long long n)
{
    long long d=2,p,r=1;
    while(n>1)
    {
        p=0;
        while(!(n%d))n/=d,p++;
        r*=(p+1);
        ++d;
        if(d*d>n) d=n;
    }
    return r;
}
long long SumDiv(long long n)
{
    long long d=2,p,r=1;
    while(n>1)
    {
        p=d;
        while(!(n%d)) n/=d,p*=d;
        r*=(p-1)/(d-1);
        ++d;
        if(d*d>n) d=n;
    }
    return r;
}
int main()
{
     int n;
     long long x;
     cin>>n;
     while(n--){

        cin>>x;
        cout<<NrDiv(x)<<" "<<SumDiv(x)%MOD<<'\n';
     }
}