//Newton 
#include <bits/stdc++.h>
using namespace std;
double f(double x) {
    return x*x*x - 2*x - 5;
}
 
 
double f_derivative(double x) {
    return 3*x*x - 2;
}
 
int main() {
    double x0, x1, E;
    int iteration = 0;
 
    cout << "Enter initial guess (x0): ";
    cin >> x0;
    cout << "Enter tolerance (E): ";
    cin >> E;
    cout<<"Iteration\t\tX1\t\t\tFX1\t\t\tF'X1"<<endl;
    do {
        double f0 = f(x0);
        double fprime = f_derivative(x0);
 
        if (fprime == 0) {
            cout << "Mathematical Error! Derivative is zero.\n";
            return 0;
        }
 
        x1 = x0 - (f0 / fprime);
        double f1=f(x1);
        double f_prime=f_derivative(x1);
        iteration++;
 
        cout << iteration <<"\t\t"<< x1<<"\t\t\t"<<f1<<"\t\t\t"<<f_prime << endl;
        cout<<fixed<<setprecision(5);
        if (fabs((x1 - x0) / x1) < E)
            break;
 
        x0 = x1;
 
 
    } while (true);
 
    cout << "\nThe root is approximately: " << x1 << endl;
    cout << "Total iterations: " << iteration << endl;
 
    return 0;
}
 
				Ly9OZXd0b24gCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuIHgqeCp4IC0gMip4IC0gNTsKfQoKCmRvdWJsZSBmX2Rlcml2YXRpdmUoZG91YmxlIHgpIHsKICAgIHJldHVybiAzKngqeCAtIDI7Cn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgwLCB4MSwgRTsKICAgIGludCBpdGVyYXRpb24gPSAwOwoKICAgIGNvdXQgPDwgIkVudGVyIGluaXRpYWwgZ3Vlc3MgKHgwKTogIjsKICAgIGNpbiA+PiB4MDsKICAgIGNvdXQgPDwgIkVudGVyIHRvbGVyYW5jZSAoRSk6ICI7CiAgICBjaW4gPj4gRTsKICAgIGNvdXQ8PCJJdGVyYXRpb25cdFx0WDFcdFx0XHRGWDFcdFx0XHRGJ1gxIjw8ZW5kbDsKICAgIGRvIHsKICAgICAgICBkb3VibGUgZjAgPSBmKHgwKTsKICAgICAgICBkb3VibGUgZnByaW1lID0gZl9kZXJpdmF0aXZlKHgwKTsKCiAgICAgICAgaWYgKGZwcmltZSA9PSAwKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk1hdGhlbWF0aWNhbCBFcnJvciEgRGVyaXZhdGl2ZSBpcyB6ZXJvLlxuIjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQoKICAgICAgICB4MSA9IHgwIC0gKGYwIC8gZnByaW1lKTsKICAgICAgICBkb3VibGUgZjE9Zih4MSk7CiAgICAgICAgZG91YmxlIGZfcHJpbWU9Zl9kZXJpdmF0aXZlKHgxKTsKICAgICAgICBpdGVyYXRpb24rKzsKCiAgICAgICAgY291dCA8PCBpdGVyYXRpb24gPDwiXHRcdCI8PCB4MTw8Ilx0XHRcdCI8PGYxPDwiXHRcdFx0Ijw8Zl9wcmltZSA8PCBlbmRsOwogICAgICAgIGNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oNSk7CiAgICAgICAgaWYgKGZhYnMoKHgxIC0geDApIC8geDEpIDwgRSkKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIHgwID0geDE7CgoKICAgIH0gd2hpbGUgKHRydWUpOwoKICAgIGNvdXQgPDwgIlxuVGhlIHJvb3QgaXMgYXBwcm94aW1hdGVseTogIiA8PCB4MSA8PCBlbmRsOwogICAgY291dCA8PCAiVG90YWwgaXRlcmF0aW9uczogIiA8PCBpdGVyYXRpb24gPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=