Square root of a number by Repeated Subtraction method

• Last Updated : 02 Mar, 2021

Given an integer N, the task is to find its perfect square root by repeated subtraction only.
Examples:

Input: N = 25
Output: 5
Input: N = 841
Output: 29

Babylonian Method and Binary Search Approach: Refer to Square root of an integer for the approaches based on Babylonian Method and Binary Search.
Repeated Subtraction Approach:
Follow the steps below to solve the problem:

• Sum of the first N odd natural numbers is equal to N2

• Based on the fact mentioned above, repetitive subtraction of odd numbers starting from 1, until N becomes 0 needs to be performed.

• The count of odd numbers, used in this process, will give the square root of the number N

Illustration:
N = 81
Step 1: 81-1=80
Step 2: 80-3=77
Step 3: 77-5=72
Step 4: 72-7=65
Step 5: 65-9=56
Step 6: 56-11=45
Step 7: 45-13=32
Step 8: 32-15=17
Step 9: 17-17=0
Since, 9 odd numbers were used, hence the square root of 81 is 9.

Below is the implementation of the above approach.

C++

 // C++ implementation of // the above approach #include using namespace std;   // Function to return the square // root of the given number int SquareRoot(int num) {     int count = 0;       for (int n = 1; n <= num; n += 2) {           // Subtract n-th odd number         num = num - n;         count += 1;         if (num == 0)             break;     }       // Return the result     return count; }   // Driver Code int main() {     int N = 81;     cout << SquareRoot(N); }

Java

 // Java implementation of // the above approach class GFG{       // Function to return the square // root of the given number public static int SquareRoot(int num) {     int count = 0;           for(int n = 1; n <= num; n += 2)     {          // Subtract n-th odd number        num = num - n;        count += 1;        if (num == 0)            break;     }           // Return the result     return count; }   // Driver code    public static void main(String[] args) {     int N = 81;     System.out.println(SquareRoot(N)); } }   // This code is contributed by divyeshrabadiya07

Python3

 # Python3 implementation of the # above approach   # Function to return the square # root of the given number def SquareRoot(num):           count = 0     for n in range(1, num + 1, 2):                   # Subtract n-th odd number         num = num - n         count = count + 1         if (num == 0):             break       # Return the result     return count   # Driver Code N = 81 print(SquareRoot(N))   # This code is contributed by Sanjit_Prasad

C#

 // C# implementation of // the above approach using System;   class GFG{       // Function to return the square // root of the given number public static int SquareRoot(int num) {     int count = 0;           for(int n = 1; n <= num; n += 2)     {                   // Subtract n-th odd number         num = num - n;         count += 1;         if (num == 0)             break;     }           // Return the result     return count; }   // Driver code public static void Main() {     int N = 81;           Console.Write(SquareRoot(N)); } }   // This code is contributed by chitranayal

Javascript



Output:

9

Time Complexity: O(N)
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :