#include <stdio.h>
#include <stdlib.h>
double findSqrt(int target){
double low=0, high=target;
double mid;
while(high-low>1e-9){ //high-low > 10^-9
mid=(low+high)/2;
if(mid*mid==target){
break;
}
else if(mid*mid>target){
high=mid; //left
}
else {
low=mid; //right
}
}
return mid;
}
int main() {
int target;
printf("The sqrt of %d is: %f", target
, findSqrt
(target
));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmRvdWJsZSBmaW5kU3FydChpbnQgdGFyZ2V0KXsKICAgIGRvdWJsZSBsb3c9MCwgaGlnaD10YXJnZXQ7CiAgICBkb3VibGUgbWlkOwogICAgd2hpbGUoaGlnaC1sb3c+MWUtOSl7IC8vaGlnaC1sb3cgPiAxMF4tOQogICAgICAgIG1pZD0obG93K2hpZ2gpLzI7CiAgICAgICBpZihtaWQqbWlkPT10YXJnZXQpewogICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKG1pZCptaWQ+dGFyZ2V0KXsKICAgICAgICAgICAgaGlnaD1taWQ7IC8vbGVmdAogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbG93PW1pZDsgLy9yaWdodAogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBtaWQ7Cn0KCmludCBtYWluKCkgewogICAgaW50IHRhcmdldDsKICAgIHNjYW5mKCIlZCIsICZ0YXJnZXQpOwogICAgcHJpbnRmKCJUaGUgc3FydCBvZiAlZCBpczogJWYiLCB0YXJnZXQsIGZpbmRTcXJ0KHRhcmdldCkpOwoKICAgIHJldHVybiAwOwp9Cg==