#include <iostream>
#include <cmath>
int main() {
// Dane wejściowe
double c = 15.0; // liczba, z której liczymy pierwiastek
double eps = 0.001; // żądana dokładność
// Inicjalizacja przybliżenia (może być c/2 lub 1.0)
double x = c / 2.0;
double pkw; // wynik: pierwiastek kwadratowy
// Metoda Newtona-Raphsona: iterujemy, aż różnica będzie < eps
while (true) {
double next_x = 0.5 * (x + c / x); // wzór Newtona-Raphsona dla sqrt(c)
if (std::fabs(next_x - x) < eps) {
pkw = next_x;
break;
}
x = next_x;
}
// Wyświetlenie wyniku
std::cout << "Przybliżony pierwiastek kwadratowy z " << c << " = " << pkw << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CgppbnQgbWFpbigpIHsKICAgIC8vIERhbmUgd2VqxZtjaW93ZQogICAgZG91YmxlIGMgPSAxNS4wOyAgICAvLyBsaWN6YmEsIHoga3TDs3JlaiBsaWN6eW15IHBpZXJ3aWFzdGVrCiAgICBkb3VibGUgZXBzID0gMC4wMDE7IC8vIMW8xIVkYW5hIGRva8WCYWRub8WbxIcKCiAgICAvLyBJbmljamFsaXphY2phIHByenlibGnFvGVuaWEgKG1vxbxlIGJ5xIcgYy8yIGx1YiAxLjApCiAgICBkb3VibGUgeCA9IGMgLyAyLjA7CiAgICBkb3VibGUgcGt3OyAvLyB3eW5pazogcGllcndpYXN0ZWsga3dhZHJhdG93eQoKICAgIC8vIE1ldG9kYSBOZXd0b25hLVJhcGhzb25hOiBpdGVydWplbXksIGHFvCByw7PFvG5pY2EgYsSZZHppZSA8IGVwcwogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICBkb3VibGUgbmV4dF94ID0gMC41ICogKHggKyBjIC8geCk7IC8vIHd6w7NyIE5ld3RvbmEtUmFwaHNvbmEgZGxhIHNxcnQoYykKICAgICAgICBpZiAoc3RkOjpmYWJzKG5leHRfeCAtIHgpIDwgZXBzKSB7CiAgICAgICAgICAgIHBrdyA9IG5leHRfeDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHggPSBuZXh0X3g7CiAgICB9CgogICAgLy8gV3nFm3dpZXRsZW5pZSB3eW5pa3UKICAgIHN0ZDo6Y291dCA8PCAiUHJ6eWJsacW8b255IHBpZXJ3aWFzdGVrIGt3YWRyYXRvd3kgeiAiIDw8IGMgPDwgIiA9ICIgPDwgcGt3IDw8IHN0ZDo6ZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=