3
$\begingroup$

I am trying to find the formula for finding out if a number is heptagonal. I am also looking for the formula for finding out if a number is octagonal.

I already have the formula for finding out the nth heptagonal number and the nth octagonal number:

heptagonal: $\frac{n(5n - 3)}{2}$

octagonal: $n(3n-2n)$

For example, with these formulas the 20th heptagonal number is 970 and the 20th octagonal number is 1160. What I want to do is be able to do is plug in 1160 into my isOctagonal formula and get back 20th for octagonal. Or 970 and get back 20th for heptagonal.

I have managed to find these reverse formulas for triangular numbers, square numbers, pentagonal numbers, and hexagonal numbers. For example, the triangular one looks like this:$n = \frac{\sqrt{8x + 1} - 1}{2}$

Where x is the triangular candidate. If n is a natural number, n is the n-th triangular number.

I have been searching and searching for the heptagonal and octagonal formulas for a long time now and can't seem to find them.

  • 0
    Gerry Myerson - Ok I will. I tried now but it won't let me answer for another 6 hours or so. Also, I don't know how to properly write-out the formula so I downloaded the formula picture from wikipedia. But I can't post images until I have 10 reputation.2012-08-20

1 Answers 1

3

For a given s-gonal number P(s, n) = x, one can find n by:

$ n = \frac{\sqrt{(8s - 16)x + (s - 4)^2} + s -4}{2s-4} $

Where n is a natural number, n is the n-th s-gonal number.

here is the Javascript function I will be using in my program:

function isNgonal(s, x) {   var n = (Math.sqrt(x * (8 * s - 16) + Math.pow(s - 4, 2)) + s - 4) / (2 * s - 4);   if(n % 1 === 0) { return n; } else { return false; }   } 

Where s is the number of sides and x is known polygonal number. If n is a natural number, n = the n-th s-gonal number

  • 1
    Another way to write it: $\frac{s-4+\sqrt{s^2+8(s-2)(x-1)}}{2(s-2)}$2012-08-21