#include <iostream>
#include <cmath>
using namespace std;
int main() {
double a = 5.0; // dodatnia liczba rzeczywista
double x = a; // przybliżenie początkowe
double eps = 0.0001; // dokładność
int iter = 0;
int maxIter = 100;
if (a <= 0) {
cout << "Liczba musi byc dodatnia!" << endl;
return 1;
}
// Metoda Newtona-Raphsona
while (fabs(x * x - a) > eps && iter < maxIter) {
x = 0.5 * (x + a / x);
iter++;
}
cout << "Przyblizona wartosc sqrt(" << a << ") = " << x << endl;
cout << "Liczba iteracji: " << iter << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgYSA9IDUuMDsgICAgICAgLy8gZG9kYXRuaWEgbGljemJhIHJ6ZWN6eXdpc3RhCiAgICBkb3VibGUgeCA9IGE7ICAgICAgICAgLy8gcHJ6eWJsacW8ZW5pZSBwb2N6xIV0a293ZQogICAgZG91YmxlIGVwcyA9IDAuMDAwMTsgIC8vIGRva8WCYWRub8WbxIcKICAgIGludCBpdGVyID0gMDsKICAgIGludCBtYXhJdGVyID0gMTAwOwoKICAgIGlmIChhIDw9IDApIHsKICAgICAgICBjb3V0IDw8ICJMaWN6YmEgbXVzaSBieWMgZG9kYXRuaWEhIiA8PCBlbmRsOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIC8vIE1ldG9kYSBOZXd0b25hLVJhcGhzb25hCiAgICB3aGlsZSAoZmFicyh4ICogeCAtIGEpID4gZXBzICYmIGl0ZXIgPCBtYXhJdGVyKSB7CiAgICAgICAgeCA9IDAuNSAqICh4ICsgYSAvIHgpOwogICAgICAgIGl0ZXIrKzsKICAgIH0KCiAgICBjb3V0IDw8ICJQcnp5Ymxpem9uYSB3YXJ0b3NjIHNxcnQoIiA8PCBhIDw8ICIpID0gIiA8PCB4IDw8IGVuZGw7CiAgICBjb3V0IDw8ICJMaWN6YmEgaXRlcmFjamk6ICIgPDwgaXRlciA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==