Pagini recente » Cod sursa (job #202862) | Cod sursa (job #2779639) | Cod sursa (job #2451503) | Cod sursa (job #2867725) | Cod sursa (job #2625672)
#include <iostream>
#include <fstream>
using namespace std;
long long p,q,k,nr,b=1,i,exp[100005],expp[100005],cop,ok;
int main()
{
ifstream cin("gfact.in");
ofstream cout ("gfact.out");
cin>>p>>q;
cop=p;
while(p%2==0)
{
exp[2]++;
p=p/2;
}
for(i=3; i*i<=p; i=i+2)
{
while(p%i==0)
{
exp[i]++;
p=p/i;
}
}
if(p>1) exp[p]++;
for(i=1; i<=cop; i++)
{
if(exp[i]>0)
exp[i]=q*exp[i];
}
while(ok==0)
{
nr++;
b=b*nr;
while(b%2==0)
{
expp[2]++;
b=b/2;
}
for(i=3; i*i<=b; i=i+2)
{
while(b%i==0)
{
expp[i]++;
b=b/i;
}
}
if(b>1) expp[b]++;
for(i=1;i<=cop;i++)
{
if(exp[i]==expp[i])
ok=1;
else
{
ok=0;
break;
}
}
}
cout<<nr;
return 0;
}