#include <iostream>
using namespace std;

int main() {
	auto sqr=[](int x){return x*x;};
	auto sqrt=[sqr](int x){
	  auto center=[](int a,int b){return (a+b)>>1;};
	  int low=0<<(sizeof(x)*8/2);
	  int top=1<<(sizeof(x)*8/2);
	  cout<<"top = "<<top<<endl;
	  for(int i=0;i<32;i++){
	  	cout<<"low = "<<low<<"     top = "<<top<<endl;
	    int c=center(low,top);cout<<c<<endl;
	    (c*c<=x?low:top)=c;
	    if(sqr(c+0)<=x)if(sqr(c+1)>x)return c;
	  }
	  return -1;
	};
    cout<<"result = "<<sqrt(sqr(31000))<<endl;;
	return 0;
}