# Finding Square Root without using sqrt()

• (2 Pages)
• • 1
• 2

## 22 Replies - 5131 Views - Last Post: 05 August 2012 - 09:39 AM

### #16 jjl Reputation: 1270
• Posts: 4,998
• Joined: 09-June 09

## Re: Finding Square Root without using sqrt()

Posted 08 October 2009 - 05:36 PM

Well pow(x,.5) works pretty good for an alternative

### #17 wowelf Reputation: 0
• Posts: 13
• Joined: 24-October 09

## Re: Finding Square Root without using sqrt()

Posted 20 December 2009 - 03:33 AM

I have to change "int no "to "float no" .Then it's working (sqrt())

### #18 voodoomedo Reputation: 0
• Posts: 1
• Joined: 02-December 08

## Re: Finding Square Root without using sqrt()

Posted 02 June 2010 - 04:48 PM

just thank you ..

### #19 krishhna4u Reputation: 0
• Posts: 3
• Joined: 20-August 10

## Re: Finding Square Root without using sqrt()

Posted 20 August 2010 - 04:37 AM

i cant understand the logic of square root please tell me any one x1=i; for(int j=0;j<10;j++) { x2=m; x2/=x1; x2+=x1; x2/=2; x1=x2; } return x2; i am chakri and my profile in this is krishhna4u.

### #20 kevywilly Reputation: 0
• Posts: 0
• Joined: 23-September 10

## Re: Finding Square Root without using sqrt()

Posted 23 September 2010 - 11:27 AM

I am just a hack, but here is another method that computes square root of 750,000,000 in just 880 iterations by starting with a guess of 1/2 and doubling the increment each time until the number is reached. The sign of the increment changes depending on whether the result is greater than or less than the desired result. Also, as we approach the solution, the increment is reset to its initial value to avoid overshooting the result. #include #include using namespace std; int dbl(int val); int fact(int val); double squareRoot(double val); int main() { squareRoot(9); squareRoot(144); squareRoot(17); squareRoot(750000000); return 0; } double squareRoot(double val) { // set initial increment value double initial_increment = 0.0000001; double curr_increment = initial_increment; // initialize current increment to initial -(initial increment) because // we will be starting with a guess = 1/2 of the value we are trying to compute // and as a result the initial guess squared will be > value // guess root = 1/2 val and set curr_increment = -(initial_increment) double guess = val / 2.0; //double curr_increment=-initial_increment; // calc the initial the difference double dif = (val - (guess * guess)); // direction parameter are we moving up or down to reach the number? double direction; // counter int i = 0; // loop until we reach our threshold while (abs(dif) > 0.000001) { if (abs(dif) < 0.01) { // if we are getting close, use smaller increments initial_increment = initial_increment / 2.0; } // set the direction - up / down if (dif < 0.0){ direction = -1.0; } else { direction = 1.0; } // if direction has not changed if ((curr_increment/abs(curr_increment)) == (direction/abs(direction))) { curr_increment *= 2.0; } else { // if current increment < 0 use initial_increment, we are changing direction curr_increment = initial_increment * direction; } // to avoid infinite loop use initial_increment if increment > current guess if (abs(curr_increment) > guess) { curr_increment = initial_increment * direction; } guess += curr_increment; // increment the guess dif = (val - (guess * guess)); //calc the diff i++; } cout << "iterations: " << i << "\t initial value:" << val << "\troot: " << guess << "\tcalculated value: " << guess * guess << "\tdiff: " << dif << endl; return guess; }

### #21 Kaywon Reputation: 0
• Posts: 1
• Joined: 22-February 11

## Re: Finding Square Root without using sqrt()

Posted 26 February 2011 - 02:50 AM

Gud,

### #22 Vodkacannon Reputation: 0
• Posts: 67
• Joined: 07-November 11

## Re: Finding Square Root without using sqrt()

Posted 05 August 2012 - 09:38 AM

square root of x = e^(1/2*log*x) (e is eulers number) The denominator in the fraction corresponds to the root. So you can solve any root. I guess this isn't any better though because you still have to use math calls.

### #23 Vodkacannon Reputation: 0
• Posts: 67
• Joined: 07-November 11

## Re: Finding Square Root without using sqrt()

Posted 05 August 2012 - 09:39 AM

My bad its not log x it's ln(x) (natural logarithm)

• (2 Pages)
• • 1
• 2

 .related ul { list-style-type: circle; font-size: 12px; font-weight: bold; } .related li { margin-bottom: 5px; background-position: left 7px !important; margin-left: -35px; } .related h2 { font-size: 18px; font-weight: bold; } .related a { color: blue; }