Pagini recente » Cod sursa (job #2056953) | Cod sursa (job #1618809) | Cod sursa (job #1854557) | Cod sursa (job #2964645) | Cod sursa (job #363036)
Cod sursa(job #363036)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream o("numere2.in");
ofstream y("numere2.out");
long long cautare (unsigned long long a,unsigned long long b,unsigned long long p,unsigned int i)
{unsigned long long c,d;
while(a<=b)
{
c=(a+b)/2;
d=pow(c,i);
if(d==p)
return c;
if(d>p)
b=c-1;
if(d<p)
a=c+1;
}
return -1;
}
int main ()
{
unsigned long long a,p,b,x,min;
unsigned int i,t=1;
a=1;
b=4000000;
o>>p;
min=cautare(a,b,p,1);
for(i=2;i<=150;i++)
{
x=cautare(a,b,p,i);
if(x!=-1 && x<min)
{
min=x;
t=i;
}
}
y<<min<<'\n'<<t;
o.close();
y.close();
return 0;
}