Cod sursa(job #3137611)

Utilizator SSKMFSS KMF SSKMF Data 13 iunie 2023 20:29:28
Problema Zero 2 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
using namespace std;

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

int main ()
{
    for (int indice = 1 , lungime , baza ; indice <= 10 ; indice++)
    {
        cin >> lungime >> baza;

        int ultimul = 0 , exponent_ultim = 0;
        for (int factor = 2 ; factor * factor <= baza ; factor++)
            if (baza % factor == 0) {
                ultimul = factor;
                exponent_ultim = 0;
                while (baza % factor == 0) {
                    baza /= factor;
                    exponent_ultim++;
                }
            }

        if (baza > 1) {
            ultimul = baza;
            exponent_ultim = 1;
        }
        
        unsigned long long zero = 0;
        for (long long impartitor = ultimul ; impartitor <= lungime ; impartitor *= ultimul)
            zero += impartitor / ultimul * (lungime - impartitor + 1);

        cout << zero / exponent_ultim << '\n';
    }

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