#include <iostream>
#include <cmath>
using namespace std;
int main() {
// Stała liczba > 1
double A = 10.0;
// Przedział początkowy
double a = 1.0;
double b = A;
double c;
// Dokładność
double eps = 1e-6;
// Metoda bisekcji
while ((b - a) > eps) {
c = (a + b) / 2.0;
if (c * c > A)
b = c;
else
a = c;
}
cout << "Przyblizona wartosc sqrt(" << A << ") = " << c << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICAvLyBTdGHFgmEgbGljemJhID4gMQogICAgZG91YmxlIEEgPSAxMC4wOwoKICAgIC8vIFByemVkemlhxYIgcG9jesSFdGtvd3kKICAgIGRvdWJsZSBhID0gMS4wOwogICAgZG91YmxlIGIgPSBBOwogICAgZG91YmxlIGM7CgogICAgLy8gRG9rxYJhZG5vxZvEhwogICAgZG91YmxlIGVwcyA9IDFlLTY7CgogICAgLy8gTWV0b2RhIGJpc2VrY2ppCiAgICB3aGlsZSAoKGIgLSBhKSA+IGVwcykgewogICAgICAgIGMgPSAoYSArIGIpIC8gMi4wOwoKICAgICAgICBpZiAoYyAqIGMgPiBBKQogICAgICAgICAgICBiID0gYzsKICAgICAgICBlbHNlCiAgICAgICAgICAgIGEgPSBjOwogICAgfQoKICAgIGNvdXQgPDwgIlByenlibGl6b25hIHdhcnRvc2Mgc3FydCgiIDw8IEEgPDwgIikgPSAiIDw8IGMgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=