#include <bits/stdc++.h>
using namespace std;
 
double f(double x) {
    return ((3 * x) * x) * x - 4; 
}
 
int main() {
    double x1, x2, x3, f1, f2, E;
    int i = 1;
 
    cout << "Enter two initial points x1 and x2: ";
    cin >> x1 >> x2;
    cout << "Enter required accuracy (E): ";
    cin >> E;
 
    f1 = f(x1);
    f2 = f(x2);
 
    cout << fixed << setprecision(6);
    cout << "Iteration\tX1\t\tX2\t\tX3\t\tf(X1)\t\tf(X2)" << endl;
 
    do {
        x3 = (f2 * x1 - f1 * x2) / (f2 - f1); 
 
        cout << i << "\t\t" << x1 << "\t" << x2 << "\t" << x3
             << "\t" << f1 << "\t" << f2 << endl;
 
        if (fabs((x3 - x2) / x3) <= E) {
            cout << "\nRoot found at x = " << x3 << " after " << i << " iterations." << endl;
            break;
        }
 
        x1 = x2;
        f1 = f2;
        x2 = x3;
        f2 = f(x3);
        i++;
 
    } while (true);
 
    return 0;
}
 
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgZihkb3VibGUgeCkgewogICAgcmV0dXJuICgoMyAqIHgpICogeCkgKiB4IC0gNDsgCn0KCmludCBtYWluKCkgewogICAgZG91YmxlIHgxLCB4MiwgeDMsIGYxLCBmMiwgRTsKICAgIGludCBpID0gMTsKCiAgICBjb3V0IDw8ICJFbnRlciB0d28gaW5pdGlhbCBwb2ludHMgeDEgYW5kIHgyOiAiOwogICAgY2luID4+IHgxID4+IHgyOwogICAgY291dCA8PCAiRW50ZXIgcmVxdWlyZWQgYWNjdXJhY3kgKEUpOiAiOwogICAgY2luID4+IEU7CgogICAgZjEgPSBmKHgxKTsKICAgIGYyID0gZih4Mik7CgogICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNik7CiAgICBjb3V0IDw8ICJJdGVyYXRpb25cdFgxXHRcdFgyXHRcdFgzXHRcdGYoWDEpXHRcdGYoWDIpIiA8PCBlbmRsOwoKICAgIGRvIHsKICAgICAgICB4MyA9IChmMiAqIHgxIC0gZjEgKiB4MikgLyAoZjIgLSBmMSk7IAoKICAgICAgICBjb3V0IDw8IGkgPDwgIlx0XHQiIDw8IHgxIDw8ICJcdCIgPDwgeDIgPDwgIlx0IiA8PCB4MwogICAgICAgICAgICAgPDwgIlx0IiA8PCBmMSA8PCAiXHQiIDw8IGYyIDw8IGVuZGw7CgogICAgICAgIGlmIChmYWJzKCh4MyAtIHgyKSAvIHgzKSA8PSBFKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIlxuUm9vdCBmb3VuZCBhdCB4ID0gIiA8PCB4MyA8PCAiIGFmdGVyICIgPDwgaSA8PCAiIGl0ZXJhdGlvbnMuIiA8PCBlbmRsOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIHgxID0geDI7CiAgICAgICAgZjEgPSBmMjsKICAgICAgICB4MiA9IHgzOwogICAgICAgIGYyID0gZih4Myk7CiAgICAgICAgaSsrOwoKICAgIH0gd2hpbGUgKHRydWUpOwoKICAgIHJldHVybiAwOwp9Cg==