This is a double question...

  1. I would like to see a plot of primes such that there are concentric circles, with each circle representing a prime and having its number represented as evenly placed points around the circle. For example,

    • r=2: two dots 180 degrees apart,
    • r=3: three dots 120 degrees apart,
    • r=4: five dots 72 degrees apart.

    Surely someone has plotted this before but I can't google it and I don't recognise it if I've already seen it. Can someone link to one?

  2. If I need to graph it myself, how can I express this on Wolframalpha or something?

Note: absolute math noob, if it's not obvious!

  • $\begingroup$ you mention the Ulam spiral, you may enjoy this discussion tex.stackexchange.com/questions/44673/…, the only software you need to reproduce the results is LaTeX. $\endgroup$
    – PatrickT
    Feb 16, 2014 at 17:01
  • $\begingroup$ How much of the "flavour" of this plot is just odd numbers? What does the plot of all odd numbers look like? $\endgroup$
    – Mark Hurd
    Feb 17, 2014 at 0:06

3 Answers 3


Here is a Mathematica function that should do what you want:

PrimeCircles[n_] :=
 Show[Table[Graphics[Circle[{0, 0}, k]], {k, 1, n}], Table[Table[
 Graphics[{PointSize[Large], Point[{k Cos[2 Pi j/Prime[k]], 
 k Sin[2 Pi j/Prime[k]]}]}], {j, 0, Prime[k] - 1}], {k, 1, n}]]

So for example, PrimeCircles[5] produces

enter image description here

Unfortunately, the ability to use something like this is not available in Wolfram Alpha.

Here is an animation of PrimeCircles[n] for n from 1 to 20:

enter image description here

Or, if you prefer the sizes of the circles to remain constant in the animation,

enter image description here

  • $\begingroup$ That's it! I don't have any math tools. This is just a curiosity of mine. Can you show a higher density graph with more numbers please??? $\endgroup$
    – bluedog
    Feb 16, 2014 at 7:45
  • $\begingroup$ These are awesome answers guys. I am curious to see this for much larger numbers though - like for the Ulam Spiral on the Wikipedia page (en.wikipedia.org/wiki/File:Ulam_1.png). Perhaps, leaving out the circles themselves, and just showing the dots? $\endgroup$
    – bluedog
    Feb 16, 2014 at 7:53

Here is a version without the circles.

You can see it better here: https://i.stack.imgur.com/tqXTT.png

Made with processing.org.

enter image description here

  • 1
    $\begingroup$ Let me know if you want even larger versions, but the field gets pretty uniform (i.e., dull). $\endgroup$ Feb 16, 2014 at 8:01
  • $\begingroup$ Awesome. Since the quadrants are copies of each other, is it better to - somehow - spread one quadrant around the circle and ignore the other three? EDIT - Or perhaps, to effectively zoom in on one quadrant might be more logical and meanignful. $\endgroup$
    – bluedog
    Feb 16, 2014 at 8:04
  • 2
    $\begingroup$ @bluedog The quadrants aren't copies of each other - the half-planes are (there's a symmetry about the $x$ axis), but there's a fundamental asymmetry about the $y$ axis. $\endgroup$ Feb 16, 2014 at 16:21
  • $\begingroup$ I want this as a poster. $\endgroup$
    – J.R.
    Feb 16, 2014 at 17:53

If you want to plot it using wolfram alpha, find the roots of $$ (x^2-1)(x^3-1)(x^5-1)(x^7-1) \cdots $$ See my attempt at


If you want to plot it yourself, then the points for any prime $p$ are at $$ (1,0) \\ (\cos(\theta), \sin(\theta)) \\ (\cos(2 \theta), \sin(2 \theta)) \\ (\cos(3\theta), \sin(3\theta)) \\ \cdots \\ (\cos((p-1)\theta), \sin((p-1)\theta))$$ where $\theta = 2 \pi/p$.

If you use octave or something similar, then it is just a nested loop. You may also want to vary the radius by the magnitude of the prime;

Added in response to OP's question: Here is a program I wrote in octave

hold off;
plot(0,0); % clear the plot
hold on;
for k=1:length(pr)
plot(r*cos(t*theta), r*sin(t*theta), 'o');
hold off;
print('-djpeg', 'primes.jpg');

The above program produced the following plot: enter image description here

  • $\begingroup$ Yes, I would really like to see the radius increase by one for each circle. $\endgroup$
    – bluedog
    Feb 16, 2014 at 7:37
  • 1
    $\begingroup$ By the way, octave is a free program. I would highly recommend it. gnu.org/software/octave $\endgroup$
    – user44197
    Feb 16, 2014 at 8:38
  • $\begingroup$ If you want the radius increase by one, you can plot the roots of $(x^2-1^2)(x^3-2^3)(x^5-3^5)(x^7-4^7)...$ $\endgroup$
    – Casey Chu
    Feb 16, 2014 at 9:13
  • $\begingroup$ Finding the roots of giant polynomials seems like a terrible way of plotting these points - rootfinding routines will only give approximations unless your CA system is smart enough to recognize the exact factorization, and these approximations are notoriously inaccurate near linearly-dependent roots (which these are). Alpha does okay with it because it's smart enough to find the roots of each factor individually, but for more than a handful of rings this is pretty messy. $\endgroup$ Feb 16, 2014 at 16:29
  • $\begingroup$ @StevenStadnicki I agree but Wolfram alpha is free but Mathematic is not. I could not think of any other way to do it in Wolfram. I don't think too many have access to expensive software such as Mathematica or Matlab outside the school. I am not sure how else to do it in Wolfram Alpha $\endgroup$
    – user44197
    Feb 16, 2014 at 17:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .