Skip to content
Related Articles

Related Articles

Improve Article
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 <bits/stdc++.h>
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




<script>
 
// Javascript implementation of
// the above approach
 
// Function to return the square
// root of the given number
function SquareRoot(num)
{
    let count = 0;
 
    for (let 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
 
    let N = 81;
    document.write(SquareRoot(N));
 
// This code is contributed by Mayank Tyagi
 
</script>
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 :