#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
double _sqrt(double val, double x) //牛顿迭代法
{
if(abs(x*x - val) < 0.00001){return x;}
else{
x = (x + val/x)/2;
return _sqrt(val, x);
}
}
double sqrt_Rec(double val)
{
return _sqrt(val, 1.0);
}
double sqrt_2(double val) //二分法
{
double left = 0;
double right = val > 1.0?val: 1.0;
double mid = (left + right)/2;
while(abs(mid*mid - val) > 0.00001){
if( mid*mid - val > 0){
right = mid;
}else{
left = mid;
}
mid = (left + right)/2;
}
return mid;
}
int main()
{
double num;
while(cin >> num){
cout << sqrt_2(num) << endl;
}
}
#include <cstdlib>
#include <cmath>
using namespace std;
double _sqrt(double val, double x) //牛顿迭代法
{
if(abs(x*x - val) < 0.00001){return x;}
else{
x = (x + val/x)/2;
return _sqrt(val, x);
}
}
double sqrt_Rec(double val)
{
return _sqrt(val, 1.0);
}
double sqrt_2(double val) //二分法
{
double left = 0;
double right = val > 1.0?val: 1.0;
double mid = (left + right)/2;
while(abs(mid*mid - val) > 0.00001){
if( mid*mid - val > 0){
right = mid;
}else{
left = mid;
}
mid = (left + right)/2;
}
return mid;
}
int main()
{
double num;
while(cin >> num){
cout << sqrt_2(num) << endl;
}
}