Finding square root without using sqrt function?

To find the square root of a number without using the sqrt function in C++, you can use various numerical methods, such as the Newton-Raphson method or the binary search method.

Newton-Raphson Method

The Newton-Raphson method is an iterative method that can be used to approximate the square root of a number. Here is how it works:

  1. Start with an initial guess for the square root, let's call it guess.
  2. Calculate the next guess by using the formula: guess = (guess + number/guess) / 2.
  3. Repeat step 2 until the guess is close enough to the actual square root. You can define a tolerance level to determine when to stop iterating.

Here is an example implementation of the Newton-Raphson method in C++:

#include <iostream>

double squareRoot(double number) {
    double guess = number / 2; // Initial guess
    double prevGuess = 0.0; // Previous guess

    while (guess != prevGuess) {
        prevGuess = guess;
        guess = (guess + number / guess) / 2;
    }

    return guess;
}

int main() {
    double number;
    std::cout << "Enter a number: ";
    std::cin >> number;

    double result = squareRoot(number);
    std::cout << "Square root of " << number << " is: " << result << std::endl;

    return 0;
}

In this example, the squareRoot function takes a number as input and returns its square root using the Newton-Raphson method. The main function prompts the user to enter a number and calculates its square root using the squareRoot function.

Binary Search Method

Another method to find the square root of a number without using the sqrt function is the binary search method. Here is how it works:

  1. Define a range of possible square root values, usually between 0 and the number itself.
  2. Calculate the mid-point of the range.
  3. If the square of the mid-point is less than the number, update the lower bound of the range to the mid-point.
  4. If the square of the mid-point is greater than the number, update the upper bound of the range to the mid-point.
  5. Repeat steps 2-4 until the range becomes sufficiently small or the square of the mid-point is close enough to the number.

Here is an example implementation of the binary search method in C++:

#include <iostream>

double squareRoot(double number) {
    double lower = 0.0; // Lower bound of the range
    double upper = number; // Upper bound of the range
    double mid = 0.0; // Mid-point of the range

    while (upper - lower > 0.00001) {
        mid = (lower + upper) / 2;
        if (mid * mid < number) {
            lower = mid;
        } else {
            upper = mid;
        }
    }

    return mid;
}

int main() {
    double number;
    std::cout << "Enter a number: ";
    std::cin >> number;

    double result = squareRoot(number);
    std::cout << "Square root of " << number << " is: " << result << std::endl;

    return 0;
}

In this example, the squareRoot function takes a number as input and returns its square root using the binary search method. The main function prompts the user to enter a number and calculates its square root using the squareRoot function.

Both the Newton-Raphson method and the binary search method are effective ways to find the square root of a number without using the sqrt function in C++. The choice of method depends on the specific requirements and constraints of your program.