Pagini recente » Cod sursa (job #1492910) | Cod sursa (job #3212905) | Cod sursa (job #2710123) | Cod sursa (job #1199179) | Cod sursa (job #1140270)
#include <algorithm>
#include <fstream>
using namespace std;
ifstream in("gfact.in");
ofstream out("gfact.out");
int primcautat;
int zero(int n)
{
int sum;
sum = 0;
while(n)
{
sum += n / primcautat;
n /= primcautat;
}
return sum;
}
int main()
{
int p, q, primcurent, nrprim, exp, expc, prim, i, pas;
in>>p>>q;
prim = 1;
primcurent = 1;
primcautat = 1;
exp = 1;
expc = 0;
while(!(p % 2))
{
p /= 2;
primcurent *= 2;
expc++;
}
if(prim < primcurent)
{
prim = primcurent;
primcautat = 2;
exp = expc;
}
nrprim = 3;
while(p != 1)
{
primcurent = 1;
expc = 1;
while(!(p % nrprim))
{
p /= nrprim;
primcurent *= nrprim;
expc++;
}
if(prim < primcurent)
{
prim = primcurent;
exp = expc;
primcautat = nrprim;
}
nrprim += 2;
}
i = 0;
pas = 1 << 30;
while(pas)
{
if(zero(i + pas) < exp * q)
{
i += pas;
}
pas /= 2;
}
out<<i + 1<<'\n';
return 0;
}