OFFSET
3,1
COMMENTS
Every row begins with n and contains all values of k for which n is a k-gonal number.
The cardinality of row n is A177025(n). In particular, if n is prime, then row n contains only n.
LINKS
T. D. Noe, Rows n = 3..1000, flattened
EXAMPLE
The table starts with row n=3 as:
3;
4;
5;
6, 3;
7;
8;
9, 4;
10, 3;
11;
12, 5;
13;
14;
15, 6, 3;
16, 4;
17;
18, 7;
19;
20;
Before n=37, we have row n=36: {36, 13, 4, 3}. Thus 36 is k-gonal for k=3, 4, 13 and 36.
MAPLE
P := proc(n, k) n/2*((k-2)*n-k+4) ; end proc:
A177028 := proc(n) local k , j, r, kg ; r := {} ; for k from n to 3 by -1 do for j from 1 do kg := P(j, k) ; if kg = n then r := r union {k} ; elif kg > n then break ; end if; end do; end do: sort(convert(r, list), `>`) ; end proc:
for n from 3 to 20 do print(A177028(n)) ; end do: # R. J. Mathar, Apr 17 2011
MATHEMATICA
nn = 100; t = Table[{}, {nn}]; Do[n = 2; While[p = n*(4 - 2*n - r + n*r)/2; p <= nn, AppendTo[t[[p]], r]; n++], {r, 3, nn}]; Flatten[Reverse /@ t] (* T. D. Noe, Apr 18 2011 *)
PROG
(PARI) row(n) = my(list = List()); for (k=3, n, if (ispolygonal(n, k), listput(list, k))); Vecrev(list); \\ Michel Marcus, Mar 19 2021
(PARI) row(n)=my(v=List()); fordiv(2*n, k, if(k<2, next); if(k==n, break); my(s=(2*n/k-4+2*k)/(k-1)); if(denominator(s)==1, listput(v, s))); Vec(v) \\ Charles R Greathouse IV, Mar 19 2021
CROSSREFS
KEYWORD
nonn,tabf,easy
AUTHOR
Vladimir Shevelev, May 01 2010
STATUS
approved