Pagini recente » Cod sursa (job #943819) | Cod sursa (job #2103218) | Cod sursa (job #868541) | Cod sursa (job #895850) | Cod sursa (job #1730333)
#include <iostream>
#include <fstream>
using namespace std;
long long p,q,v1[10001],k,k1,v2[10001],ok;
int desc (long long x)
{
long long i=0,d=2;
while(x>1)
{
if(!(x%d))
{
int p=0;
while(x%d==0)x/=d,p++;
v1[++k1]=d;
v2[k1]=p*q;
}
if(d*d>=x && x>1)
d=x;
else d++;
}
}
int elim (long long x)
{
long long i,ok1=0;
for(i=1;i<=k1;i++)
{if(x%v1[i]==0 && v2[i])
{
while(x%v1[i]==0 && v2[i])v2[i]--,x/=v1[i];
}
if(!v2[i])ok1++;
}
ok=(ok1==k1);
}
int main()
{
ifstream fin ("gfact.in");
ofstream fout ("gfact.out");
fin>>p>>q;
desc(p);
long long i=0;
for(i=2;!ok;i++)
{
elim(i);
if(ok)break;
}
fout<<i;
return 0;
}