#include <math.h>
int SqrLint(long int Value)
{
long int x,temp,xSave;
int xl;
register int i;
temp=labs(Value);
if(temp==0) return 0;
x=temp;
i=0;
while(x>0)
{
x=x>>1;
i++;
}
i=i-1;
if((i-2*(i>>1))==0)
{
i=i>>1;
x=temp>>i;
x=103*x;
x=x>>7;
}
else
{
i=(i+1)>>1;
x=temp>>i;
x=145*x;
x=x>>7;
}
xSave=0;
while(labs(x-xSave)>1)
{
xSave=x;
x=(x+temp/x)>>1;
}
xl=(int)x;
if(labs((xl+1)*(xl+1)-temp)<labs(xl*xl-temp)) return xl+1;
if(labs((xl-1)*(xl-1)-temp)<labs(xl*xl-temp)) return xl-1;
return xl;
}
void main(void)
{
int a;
long int b;
b=(long int)6*10000;
a=SqrLint(b);
printf("a======>%d \n",a);
printf("b======>%ld",b);
getch();
}