#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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZG91YmxlIGYoZG91YmxlIHgpCnsKICAgIHJldHVybiB4ICogeCAqIHggLSA0O30KaW50IG1haW4oKSAKewogICAgZG91YmxlIHgxLCB4MiwgeDAsIGYxLCBmMiwgZjA7CiAgICBkb3VibGUgRSA9IDFlLTg7CiAKICAgIGNvdXQgPDwgIkVudGVyIHRoZSB2YWx1ZSBvZiB4MDogIjsKICAgIGNpbiA+PiB4MTsKICAgIGNvdXQgPDwgIlxuRW50ZXIgdGhlIHZhbHVlIG9mIHgxOiAiOwogICAgY2luID4+IHgyOwogCiAgICBmMSA9IGYoeDEpOwogICAgZjIgPSBmKHgyKTsKIAogICAgaWYgKGYxICogZjIgPiAwKSAKICAgIHsKICAgICAgICBjb3V0IDw8ICJcbkludmFsaWQgaW50ZXJ2YWwuLlxuIjsKICAgICAgICByZXR1cm4gMDsKICAgIH0KIAogICAgY291dCA8PCAiXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIjsKICAgIGNvdXQgPDwgIlxuSXRlcmF0aW9uXHQgeDBcdFx0IHgxXHRcdCB4Mlx0XHQgZjBcdFx0IGYxXHRcdCBmMiI7CiAgICBjb3V0IDw8ICJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CiAKICAgIGZvciAoaW50IGkgPSAxOyA7IGkrKykgCiAgICB7CiAgICAgICAgeDAgPSB4MSAtIChmMSAqICh4MiAtIHgxKSkgLyAoZjIgLSBmMSk7CiAgICAgICAgZjAgPSBmKHgwKTsKIAogICAgICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpOwogICAgICAgIGNvdXQgPDwgc2V0dygzKSA8PCBpIDw8ICJcdCIKICAgICAgICAgICAgIDw8IHgxIDw8ICJcdCIgPDwgeDIgPDwgIlx0IiA8PCB4MCA8PCAiXHQiCiAgICAgICAgICAgICA8PCBmMCA8PCAiXHQiIDw8IGYxIDw8ICJcdCIgPDwgZjIgPDwgZW5kbDsKIAogICAgICAgIGlmIChmYWJzKGYwKSA8IDFlLTYgfHwgZmFicygoeDIgLSB4MSkgLyB4MikgPCBFKQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCAiXG5BcHByb3hpbWF0ZSByb290ID0gIiA8PCB4MCA8PCBlbmRsOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAKICAgICAgICBpZiAoZjEgKiBmMCA8IDApCiAgICAgICAgewogICAgICAgICAgICB4MiA9IHgwOwogICAgICAgICAgICBmMiA9IGYwOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHgxID0geDA7CiAgICAgICAgICAgIGYxID0gZjA7CiAgICAgICAgfQogICAgfQogCiAgICByZXR1cm4gMDsKfQog