Pagini recente » Cod sursa (job #470965) | Cod sursa (job #3214029) | Cod sursa (job #1707455) | Cod sursa (job #3236335) | Cod sursa (job #3187230)
#include<fstream>
using namespace std;
ifstream F("gfact.in");
ofstream G("gfact.out");
int p,q,a[10],b[10],j,k,i;
long long c,s,t,r,l;
bool o;
int main()
{
for(F>>p>>q,c=1LL*p*q,s=1;s<=c;s<<=1);
for(;!(p&1);p>>=1,++l);
for(l?a[j]=2,b[j++]=l*q:0,i=3;i*i<=p;i+=2)
if(p%i==0) {
for(a[j]=i,b[j]=0;p%i==0;p/=i,++b[j]);
b[j++]*=q;
}
for(p>1?a[j]=p,b[j++]=q:0,t=s;t;!o&&c>=t?c-=t:0,t>>=1)
for(o=0,k=0;k<j&&!o;l<b[k]?o=1:0,++k)
for(l=0,r=c-t;r&&l<b[k];r/=a[k],l+=r);
return G<<c,0;
}