Cod sursa(job #3321322)

Utilizator pachy2007Pachitanu Matei pachy2007 Data 9 noiembrie 2025 11:31:09
Problema Suma si numarul divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <bits/stdc++.h>

#define MOD 9973
#define int long long
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");

int power(int a , int b)
{
    if(b==0)return 1;

    int x=power(a , b/2)%MOD;

    if(b%2==0)return (x*x)%MOD;
    return ((x*x)%MOD*a)%MOD;
}

vector<int> v;
int t,n,ciur[1000005],ans,ans2;
signed main()
{
    ciur[0]=1;
    ciur[1]=1;
    for(int i=1;i<=1000000;i++)
        if(ciur[i]==0)
    {
        v.push_back(i);
        for(int j=i+i;j<=1000000;j+=i)
            ciur[j]=1;
    }

    fin>>t;
    for(int h=1;h<=t;h++)
    {
        fin>>n;

        int it=0;
        int imp=v[it];
        ans=1;
        ans2=1;
        while(n!=1)
        {
            int nr=0;
            while(n%imp==0)
                {n/=imp;nr++;}
            ans*=(nr+1);
            ans2*= (((power(imp , nr+1)-1)*power(imp-1 , MOD-2)))%MOD;

            imp=v[++it];
            if(imp*imp>n)imp=n;
        }
        fout<<ans<<' '<<ans2<<'\n';
    }
    return 0;
}