Cod sursa(job #1254694)
Utilizator | Darius Pop Darius15 | Data | 3 noiembrie 2014 10:42:24 |
---|---|---|---|
Problema | Numere 2 | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
using namespace std;
ifstream f("numere7.in");
ofstream g("numere7.out");
long long p,exp,st,dr,best,u,o,i,m;
int main()
{
f>>p;
st=1,dr=p;
exp=2;
while(st<=dr)
{
m=(st+dr)/2;
u=o=1;
for (i=1;i<=exp;i++)
u*=m,o*=(m+1);
if (u<=p && p<o)
{
if (u==p) best=m;
st=1,dr=p,exp++;
}
else if (o<=p) st=m+1;
else if (u>p) dr=m-1;
}
g<<best;
return 0;
}