#include <iostream>
#include <cmath> // dla std::abs
int main() {
double a; // liczba, której pierwiastek chcemy policzyć
double tol = 1e-6; // tolerancja błędu
std::cout << "Podaj liczbe: ";
std::cin >> a;
if (a < 0) {
std::cout << "Pierwiastek z liczby ujemnej nie istnieje w zbiorze liczb rzeczywistych.\n";
return 1;
}
double x = a / 2.0; // początkowe przybliżenie
double x_next;
do {
x_next = 0.5 * (x + a / x); // wzór Newtona-Raphsona
if (std::abs(x_next - x) < tol) break; // warunek zakończenia
x = x_next;
} while (true);
std::cout << "Przyblizony pierwiastek kwadratowy z " << a << " wynosi: " << x_next << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+ICAgIC8vIGRsYSBzdGQ6OmFicwoKaW50IG1haW4oKSB7CiAgICBkb3VibGUgYTsgICAgICAgICAgICAvLyBsaWN6YmEsIGt0w7NyZWogcGllcndpYXN0ZWsgY2hjZW15IHBvbGljennEhwogICAgZG91YmxlIHRvbCA9IDFlLTY7ICAgLy8gdG9sZXJhbmNqYSBixYLEmWR1CiAgICBzdGQ6OmNvdXQgPDwgIlBvZGFqIGxpY3piZTogIjsKICAgIHN0ZDo6Y2luID4+IGE7CgogICAgaWYgKGEgPCAwKSB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJQaWVyd2lhc3RlayB6IGxpY3pieSB1amVtbmVqIG5pZSBpc3RuaWVqZSB3IHpiaW9yemUgbGljemIgcnplY3p5d2lzdHljaC5cbiI7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgZG91YmxlIHggPSBhIC8gMi4wOyAgLy8gcG9jesSFdGtvd2UgcHJ6eWJsacW8ZW5pZQogICAgZG91YmxlIHhfbmV4dDsKCiAgICBkbyB7CiAgICAgICAgeF9uZXh0ID0gMC41ICogKHggKyBhIC8geCk7ICAvLyB3esOzciBOZXd0b25hLVJhcGhzb25hCiAgICAgICAgaWYgKHN0ZDo6YWJzKHhfbmV4dCAtIHgpIDwgdG9sKSBicmVhazsgIC8vIHdhcnVuZWsgemFrb8WEY3plbmlhCiAgICAgICAgeCA9IHhfbmV4dDsKICAgIH0gd2hpbGUgKHRydWUpOwoKICAgIHN0ZDo6Y291dCA8PCAiUHJ6eWJsaXpvbnkgcGllcndpYXN0ZWsga3dhZHJhdG93eSB6ICIgPDwgYSA8PCAiIHd5bm9zaTogIiA8PCB4X25leHQgPDwgIlxuIjsKCiAgICByZXR1cm4gMDsKfQo=