Pagini recente » Cod sursa (job #344812) | Cod sursa (job #1267121) | Cod sursa (job #2153930) | Cod sursa (job #914965) | Cod sursa (job #1118026)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
unsigned putere(unsigned a, unsigned b)
{ unsigned rez=1;
while(b)
{ if(b&1) { rez*=a; b--; }
a*=a; b>>=1; }
return rez;
}
int main()
{ unsigned long long p,q,ex,aux,cop,d=2,max=0,exmax;
ifstream f("gfact.in");
ofstream g("gfact.out");
f>>p>>q;
while((p>1)&&(d<=sqrt(p)))
{ ex=0;
while(p%d==0)
{ p=p/d; ex++; }
if(ex)
{ aux=putere(d,ex);
if(aux>max) { max=d; exmax=ex*q; }
}
d++;
}
if(d>sqrt(p)&&(p>max)) { max=p; exmax=q; }
d=0;
while(exmax>0)
{ d=d+max; cop=d;
while((cop%max==0)&&(exmax>0))
{ exmax--;
cop=cop/max;
}
}
g<<d;
return 0;
}