#include #include #include #include int main(int argc, char **argv) { long double k; long double k2; long double k3; long double k4; long double k5; long double ans; long double x; long double x10; long double x8; long double x6; long double x4; long double x2; char pszString[256] = "2"; if ( argc < 2 ) { printf( "Enter a number to find square root of:" ); fgets( pszString, sizeof( pszString ), stdin ); puts( pszString ); } else strncpy( pszString, argv[1], sizeof( pszString ) ); k = atof( pszString ); k2 = k*k; k3 = k2*k; k4 = k3*k; k5 = k4*k; x = sqrtl( k ) * 1.1; /* form estimate correct to 1 digit */ x2 = x*x; x4 = x2*x2; x6 = x4*x2; x8 = x6*x2; x10= x8*x2; /* Method A, term = 9 */ ans = ( x10 + 45*x8*k + 210*x6*k2 + 210*x4*k3 + 45*x2*k4 + k5) / ( 2*x*( 5*x8 + 60*x6*k + 126*x4*k2 + 60*x2*k3 + 5*k4 ) ); printf("answer = %30.20LeL\nx = %30.20LeL\n", sqrtl( k ), ans ); /* Method B, term = 9 */ ans = ( 2*x*k*( 5*x8 + 60*x6*k + 126*x4*k2 + 60*x2*k3 + 5*k4 ) ) / ( x10 + 45*x8*k + 210*x6*k2 + 210*x4*k3 + 45*x2*k4 + k5 ) ; printf("answer = %30.20LeL\nx = %30.20LeL\n", sqrtl( k ), ans ); return 0; }