Pagini recente » Cod sursa (job #455366) | Cod sursa (job #528008) | Cod sursa (job #2525988) | Cod sursa (job #2526138) | Cod sursa (job #1856634)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("gfact.in");
ofstream fout("gfact.out");
int p,q,i,d,o,v[500000000],nr,nrnr,j;
int verif(int x, int y, int z)
{
int s = 0;
while (x/y != 0)
{
s += x/y;
y *= y;
}
if (s == z)
return 1;
else
return 0;
}
int main()
{
fin >> p >> q;
o = p;
for (d=2; d*d<=p; d++)
{
while (p%d == 0)
{
v[d]++;
p /= d;
}
}
if (p != 1)
v[p]++;
for (i=1; i<=o; i++)
if (v[i] != 0)
{
v[i] *= q;
nr++;
}
for (i=1; i>=1; i++)
{
nrnr = 0;
for (j=2; j<=o; j++)
if ((verif(i, j, v[j]) == 1) && (v[j] != 0))
nrnr++;
if (nrnr == nr)
{
fout << i;
break;
}
}
return 0;
}