OFFSET
0,10
COMMENTS
Similar to A283307, but with secondary sorting by polar angle.
LINKS
Hugo Pfoertner, Table of n, a(n) for n = 0..17664 (covering range r <= 75).
Hugo Pfoertner, Illustration of A305576 vs A305575.
Rainer Rosenthal, Coloured Circular Visualization of Spiral [A305575,A305576]
EXAMPLE
The first points (listing [polar angle phi,x,y]) are:
r^2
0: [0.0*Pi,0,0];
1: [0.0*Pi,1,0], [0.5*Pi,0,1], [1.0*Pi,-1,0], [1.5*Pi,0,-1];
2: [0.25*Pi,1,1], [0.75*Pi,-1,1], [1.25*Pi,-1,-1], [1.75*Pi,1,-1];
4: [0.0*Pi,2,0], [0.5*Pi,0,2], [1.0*Pi,-2,0], [1.5*Pi,0,-2];
5: [0.148*Pi,2,1], [0.352*Pi,1,2], [0.648*Pi,-1,2], [0.852*Pi,-2,1],
[1.148*Pi,-2,-1], [1.352*Pi,-1,-2], [1.648*Pi,1,-2], [1.852*Pi,2,-1];
8: [0.25*Pi,2,2], [0.75*Pi,-2,2], [1.25*Pi,-2,-2], [1.75*Pi,2,-2].
PROG
(PARI) atan2(y, x)=if(x>0, atan(y/x), if(x==0, if(y>0, Pi/2, -Pi/2), if(y>=0, atan(y/x)+Pi, atan(y/x)-Pi)));
angle(x, y)=(atan2(y, x)+2*Pi)%(2*Pi);
{a004018(n) = if( n<1, n==0, 4 * sumdiv( n, d, (d%4==1) - (d%4==3)))};
xyselect=1; \\ change to 2 for A305576
print1(0, ", "); for(s=1, 25, my(r=a004018(s)); if(r>0, my(v=matrix(r, 3), w=vector(r), m=sqrtint(s), L=0); for(i=-m, m, my(k=s-i^2, kk); if(k==0, v[L++, 1]=i; v[L, 2]=0; v[L, 3]=angle(i, 0), if(issquare(k), kk=sqrtint(k); forstep(j=-kk, kk, kk+kk, v[L++, 1]=i; v[L, 2]=j; v[L, 3]=angle(i, j))))); p=vecsort(v[, 3], , 1); for(k=1, L, w[k]=v[p[k], xyselect]); for(k=1, L, print1(w[k], ", ")))); \\ Hugo Pfoertner, May 12 2019
CROSSREFS
KEYWORD
sign,look
AUTHOR
Hugo Pfoertner, Jun 05 2018
STATUS
approved