This week's book giveaway is in the Design forum. We're giving away four copies of Building Microservices and have Sam Newman on-line! See this thread for details.

I am trying to make a java program that calculates the square root of a given number. I used a mathematical formula to generate the square root called Bakhshali approximation. It states that if (N square) is the nearest perfect square to the number S. S is the number we are finding the square root for then the square root of S is calculated as follows: 1- D = S-(N square) 2- P = D/2N 3- A = N + P 4- then square root of S is approximately given by A - (p square)/2A

now in my program i have written the above calculations but the problem i am facing now is how to make my program selects the nearest perfect square.

i have tried to take a while loop to find the squares of the numbers less than or equal to the value of S. then comparing these squares one by one with S until i get the nearest square.

i know it my code has a lot of errors but would any one suggest something. I would appreciate your help.

Omar Salem [edit]Add code tags. CR[/edit] [ December 04, 2008: Message edited by: Campbell Ritchie ]

Not familiar with the method, but d/2*N should surely read d/2/N. You have declared N inside the block; it will go out of scope and vanish when you try to use it later. Sorry I can't help any more.

omar salem
Ranch Hand

Joined: Aug 22, 2006
Posts: 34

posted

0

Thanks for you both......I already know that there is a Math.sqrt() method but that would calculate the square root for me. what i am trying to do is to make my program calculate the square root without using any built in methods.

if you are using any of the IDE's it should'nt be hard to get inside the Math.sqrt() function, Just right click and "go to declaration"

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 44031

33

posted

0

Originally posted by Sri Anand: if you are using any of the IDE's it should'nt be hard to get inside the Math.sqrt() function, Just right click and "go to declaration"

Math.sqrt is (indirectly) a native function. It will be very difficult to find its code. If you look in the StrictMath class you find this link where you can get details of the algorithms, however.

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 44031

33

posted

0

It's not as hard as I thought to find the code; you can download it from the link I quoted a few minutes ago.

omar salem
Ranch Hand

Joined: Aug 22, 2006
Posts: 34

posted

0

Thank you all. That really helped....I really appreciate it. Omar Salem