#include <bits/stdc++.h>
using namespace std;
 
double f(double x)
{
    return x * x * x - 4;}
int main() 
{
    double x1, x2, x0, f1, f2, f0;
    double E = 1e-8;
 
    cout << "Enter the value of x0: ";
    cin >> x1;
    cout << "\nEnter the value of x1: ";
    cin >> x2;
 
    f1 = f(x1);
    f2 = f(x2);
 
    if (f1 * f2 > 0) 
    {
        cout << "\nInvalid interval..\n";
        return 0;
    }
 
    cout << "\n-------------------------------------------------------------";
    cout << "\nIteration\t x0\t\t x1\t\t x2\t\t f0\t\t f1\t\t f2";
    cout << "\n-------------------------------------------------------------\n";
 
    for (int i = 1; ; i++) 
    {
        x0 = x1 - (f1 * (x2 - x1)) / (f2 - f1);
        f0 = f(x0);
 
        cout << fixed << setprecision(6);
        cout << setw(3) << i << "\t"
             << x1 << "\t" << x2 << "\t" << x0 << "\t"
             << f0 << "\t" << f1 << "\t" << f2 << endl;
 
        if (fabs(f0) < 1e-6 || fabs((x2 - x1) / x2) < E)
        {
            cout << "\nApproximate root = " << x0 << endl;
            break;
        }
 
        if (f1 * f0 < 0)
        {
            x2 = x0;
            f2 = f0;
        } else {
            x1 = x0;
            f1 = f0;
        }
    }
 
    return 0;
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCkKewogICAgcmV0dXJuIHggKiB4ICogeCAtIDQ7fQppbnQgbWFpbigpIAp7CiAgICBkb3VibGUgeDEsIHgyLCB4MCwgZjEsIGYyLCBmMDsKICAgIGRvdWJsZSBFID0gMWUtODsKCiAgICBjb3V0IDw8ICJFbnRlciB0aGUgdmFsdWUgb2YgeDA6ICI7CiAgICBjaW4gPj4geDE7CiAgICBjb3V0IDw8ICJcbkVudGVyIHRoZSB2YWx1ZSBvZiB4MTogIjsKICAgIGNpbiA+PiB4MjsKCiAgICBmMSA9IGYoeDEpOwogICAgZjIgPSBmKHgyKTsKCiAgICBpZiAoZjEgKiBmMiA+IDApIAogICAgewogICAgICAgIGNvdXQgPDwgIlxuSW52YWxpZCBpbnRlcnZhbC4uXG4iOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGNvdXQgPDwgIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI7CiAgICBjb3V0IDw8ICJcbkl0ZXJhdGlvblx0IHgwXHRcdCB4MVx0XHQgeDJcdFx0IGYwXHRcdCBmMVx0XHQgZjIiOwogICAgY291dCA8PCAiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwoKICAgIGZvciAoaW50IGkgPSAxOyA7IGkrKykgCiAgICB7CiAgICAgICAgeDAgPSB4MSAtIChmMSAqICh4MiAtIHgxKSkgLyAoZjIgLSBmMSk7CiAgICAgICAgZjAgPSBmKHgwKTsKCiAgICAgICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNik7CiAgICAgICAgY291dCA8PCBzZXR3KDMpIDw8IGkgPDwgIlx0IgogICAgICAgICAgICAgPDwgeDEgPDwgIlx0IiA8PCB4MiA8PCAiXHQiIDw8IHgwIDw8ICJcdCIKICAgICAgICAgICAgIDw8IGYwIDw8ICJcdCIgPDwgZjEgPDwgIlx0IiA8PCBmMiA8PCBlbmRsOwoKICAgICAgICBpZiAoZmFicyhmMCkgPCAxZS02IHx8IGZhYnMoKHgyIC0geDEpIC8geDIpIDwgRSkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuQXBwcm94aW1hdGUgcm9vdCA9ICIgPDwgeDAgPDwgZW5kbDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBpZiAoZjEgKiBmMCA8IDApCiAgICAgICAgewogICAgICAgICAgICB4MiA9IHgwOwogICAgICAgICAgICBmMiA9IGYwOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHgxID0geDA7CiAgICAgICAgICAgIGYxID0gZjA7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwp9Cg==