\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
input colorbrewer-rgb

vardef gcd(expr a, b) =
 if b = 0: a else: gcd(b, a mod b) fi
enddef;

beginfig(1);
 for n=2 upto 24:
   for s=1 upto floor n/2:
     pair p; p = (12n - 24s, -24n);
     path gon; gon = for t=0 upto n/gcd(s,n) - 1:
       10 up rotated (360/n * s * t) --
     endfor cycle;
     if (n mod s = 0):
       fill gon shifted p withcolor PuBuGn[9][1+floor (n/s/6)];
       label("$" & decimal (n/s) & "$", p);
     fi
     draw gon shifted p withpen pencircle scaled 1/8;
   endfor
 endfor
endfig;
\end{mplibcode}
\end{document}