fbpx

Problema #2323 – prim001 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un număr natural n. Să se afle numărul divizorilor naturali ai lui nn.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran numărul divizorilor lui nn, modulo 59999.

Restricții și precizări

  • 1 ≤ n ≤ 1013

Exemplu

Intrare

4

Ieșire

9

Explicație

Numărul 44=256 are 9 divizori: 1,2,4,8,16,32,64,128,256.

#include <bits/stdc++.h>
using namespace std;

int main()
{
    long long int n;
    cin >> n;
    long long int cnt=1 , d=2;
    long long int cn=n;
    while(n>1)
    {
        int p = 0;
        while(n%d==0)
        {
            n/=d;
            p++;
        }
        cnt*=(p*cn+1);
        d++;
        if(d*d>n)
            d=n;
        while(cnt>=59999)
            cnt%=59999;
    }
    cout << cnt%59999;
    return 0;
}
Comentarii

S-ar putea sa iti placa