Pagini recente » Cod sursa (job #1577338) | Cod sursa (job #241170) | Cod sursa (job #3133520) | Cod sursa (job #2530315) | Cod sursa (job #1261862)
#include <fstream>
using namespace std;
ifstream f("numere2.in");
ofstream g("numere2.out");
long long p,l,put,sol1,sol2,st,dr,m,pr,i,prec;
int main()
{
f>>p;
put=2;
sol1=p,sol2=1;
st=1,dr=p;
while(st<=dr)
{
m=(st+dr)/2;
pr=l=1;
for (i=1;i<=put;i++)
{
prec=pr;pr=prec*m,l=l*(m+1);
if (pr/m!=prec) break;
}
if (pr<=p && p<l)
{
if (pr==p) sol1=m,sol2=put;
put++,st=1,dr=m;
}
else if (l<=p) st=m+1;
else dr=m-1;
}
g<<sol1<<'\n'<<sol2;
return 0;
}