#include #include #include #define CUTOFF 0.0000000001 // Newton-Raphson iteration: x_{n+1} = x_n - (x^2 - c) / (2*x) double nr(double c) { double x_prev = 1.0; double x_current = x_prev - (x_prev * x_prev - c) / (2 * x_prev); double diff = fabs(x_prev - x_current); int count = 0; while(diff > CUTOFF) { x_current = x_prev - (x_prev * x_prev - c) / (2 * x_prev); diff = fabs(x_prev - x_current); x_prev = x_current; count++; } return(x_current); } int main(int argc, char *argv[]) { if(argc > 1) nr(atof(argv[1])); }