Pagini recente » Cod sursa (job #3151691) | Cod sursa (job #2737093) | Cod sursa (job #1471347) | Cod sursa (job #393525) | Cod sursa (job #3238906)
#include <fstream>
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
long long INF = 99999999, maxim = -1;
long long f( int factor, int putere )
{
int st = 1, dr = INF, mij, nr = 0, sol;
while ( st <= dr )
{
mij = ( st + dr ) / 2;
int x = factor;
nr = 0;
while ( mij >= x )///cati de factori sunt in mij factorial
{
nr += mij / x;
x = x * factor;
}
if ( nr >= putere )
{
sol = mij;
dr = mij - 1;
}
else
st = mij + 1;
}
return sol;
}
int main()
{
int p, q, i, factor = 2, putere, k = 0;
fin >> p >> q;
while ( p > 1 )
{
putere = 0;
while ( p % factor == 0 )
p /= factor, ++putere;
putere *= q;
if ( putere != 0 )
{
long long val = f(factor, putere);
maxim = max(maxim, val);
}
++factor;
}
fout << maxim << '\n';
return 0;
}