Cod sursa(job #2449778)

Utilizator mirceatlxhaha haha mirceatlx Data 20 august 2019 18:02:27
Problema GFact Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;

ifstream fin("gfact.in");
ofstream fout("gfact.out");

long long getA(int p,int q)
{
    long long A = 1;
    for(int i = 1; i <= q; i++)
        A = A * p;
    return A;
}

long long fact(long long number)
{
    long long result = 1;
    for(int i = 2; i <= number; i++)
        result = result * i;
    return result;
}

long long binarySearch(long long right, long long left, long long A)
{
    long long half, taker, saver = 0;

    while(right <= left)
    {
        half = (right + left) / 2;
        taker = fact(half);
        if(taker % A == 0)
        {
            saver = half;
            left = half - 1;
        }
        else
        {
            right = half + 1;
        }
        
    }

    return saver;
}

int main()
{
    int p,q;
    long long A;
    fin >> p >> q;
    A = getA(p,q);
    fout << binarySearch(1,A,A) << "\n";
    return 0;
}