Cod sursa(job #3302251)

Utilizator alexbaldovin20alex baldovin alexbaldovin20 Data 5 iulie 2025 12:07:18
Problema Suma si numarul divizorilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;

const int MOD=9973;

int nr_div(int n) {
    int d=2,nr=1,p=0;
    while (n%d==0) {
        n/=d;
        p++;
    }
    nr*=(p+1);
    d++;
    while (d*d<=n) {
        p=0;
        while (n%d==0) {
            n/=d;
            p++;
        }
        nr*=(p+1);
        d+=2;
    }
    if (n>1)
        nr*=2;
    return nr;
}

int suma_div(int n) {
    int d=2,put,sum=1,p=0;
    while (n%d==0) {
        n/=d;
        p++;
    }
    put=(pow(d,p+1)-1)/(d-1);
    sum=(sum*put)%MOD;
    d++;
    while (n>1) {
        p=0;
        while (n%d==0) {
            n/=d;
            p++;
        }
        put=(pow(d,p+1)-1)/(d-1);
        sum=(sum*put)%MOD;
        d+=2;
    }
    return sum;
}

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        cout<<nr_div(n)<<" "<<suma_div(n)<<endl;
    }
    return 0;
}