Note that this is a classic example of a "useless formula". In real life you would never want to use it because square roots are slow to calculate. Instead you use the formula:
F(n+m) = F(n)F(m-1) + F(n-1)F(m+1)
This is where F is the Fibonacci function, F(0)=0, F(1)=F(2)=1. In particular you use the special cases:
F(2n) = F(n)F(n-1) + F(n-1)F(n+1) = F(n)F(n-1) + F(n-1)(F(n) + F(n-1)) = 2F(n)F(n-1) + F(n-1)F(n-1)
and
F(2n-1) = F(n-1)F(n-1) + F(n-2)F(n) = F(n-1)F(n-1) + (F(n)-F(n-1))F(n) = F(n)F(n) - F(n-1)F(n) + F(n-1)F(n-1)
to calculate the powers of two and one off from the powers of two, then when you are done go to the general formula to calculate the number.

Now why would one do this? Well it turns out that certain numbers can be tested for primality by answering a divisibility question about some close relative of the Fibonacci numbers (eg the Lucas numbers), so most of the "record primes" that you hear about involved some very big Fibonacci numbers being calculated somewhere.

A good exercise for anyone who is interested, use the very slow Math::BigInt to come up with a function to calculate very large Fibonacci numbers.


In reply to RE (tilly) 3: Fibonnaci by tilly
in thread Reaped: Fibonnaci by NodeReaper

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.