This week's giveaway is in the Java/Jakarta EE forum.We're giving away four copies of Java EE 8 High Performance and have Romain Manni-Bucau on-line!See welcome thread
Win a copy of Java EE 8 High Performance this week in the Java/Jakarta EE forum!
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

# Need help in square root finding program.

Ranch Hand
Posts: 34
Hi Ranchers

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.

Omar Salem
[ December 04, 2008: Message edited by: Campbell Ritchie ]

Ranch Hand
Posts: 142
Not trying to be smart but there is a method Math.sqrt() to do this for you....I assume you dont want to use that though

Marshal
Posts: 57482
175
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
Posts: 34
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.

Thanks again
Omar Salem

Ranch Hand
Posts: 392
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
Marshal
Posts: 57482
175

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
Marshal
Posts: 57482
175
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
Posts: 34
Thank you all. That really helped....I really appreciate it.
Omar Salem

Campbell Ritchie
Marshal
Posts: 57482
175
Only too pleased to be able to help

 Gravity is a harsh mistress. But this tiny ad is pretty easy to deal with: The WEB SERVICES and JAX-RS Course https://coderanch.com/t/690789/WEB-SERVICES-JAX-RS