Cod sursa(job #2980507)

Utilizator SSKMFSS KMF SSKMF Data 16 februarie 2023 16:18:27
Problema Suma divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
using namespace std;

ifstream cin ("sumdiv.in");
ofstream cout ("sumdiv.out");

int main ()
{
    int baza , exponent;
    cin >> baza >> exponent;

    int suma = 1 , factor = 2;
    while (baza > 1)
    {
        long long termen = factor;
        while (baza % factor == 0)
            baza /= factor , termen *= factor;

        if (termen > factor)
        {
            for (int putere = 2 ; putere <= exponent ; putere++)
                termen *= factor;

            suma = suma * (termen - 1) / (factor - 1) % 9901;
        }

        factor++;

        if (baza > 1  && factor * factor > baza)
        {
            termen = baza;
            for (int putere = 2 ; putere <= exponent ; putere++)
                termen *= baza;

            suma = suma * (termen - 1) / (baza - 1) % 9901;

            baza = 1;
        }
    }

    cout << suma;
    cout.close(); cin.close();
    return 0;
}