Cod sursa(job #3293609)

Utilizator mihaigeorgescuGeorgescu Mihai mihaigeorgescu Data 12 aprilie 2025 09:29:44
Problema Suma si numarul divizorilor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#define int long long
using namespace std;
ifstream fcin("ssnd.in");
ofstream fout("ssnd.out");
int t,n;
const int mod=9973;
inline int lgpow(int baza, int exp)
{
    int rez=1;
    baza=baza%mod;
    while(exp)
    {
        if(exp & 1) rez=rez*baza%mod;
        baza=baza*baza%mod;
        exp>>=1;
    }
    return rez;
}
signed main()
{
    fcin>>t;
    while(t--)
    {
        fcin>>n; int nr=1, s=1;
        for(int d=2; d*d<=n; d++)
        {
            int e=0;
            while(n%d==0) e++, n=n/d;
            if(e) nr=nr*(e+1)%mod, s=s*(lgpow(d,e+1)-1+mod)%mod*lgpow(d-1, mod-2)%mod;
        }
        if(n>1) nr=nr*2%mod, s=s*(lgpow(n,2)-1+mod)%mod*lgpow(n-1, mod-2)%mod;
        fout<<nr<<" "<<s<<'\n';
    }
    return 0;
}