# 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 :