In the following C program fragment, j, k, n and TwoLog_n are integer variables, and A is an array of integers. The variable n is initialized to an integer $\ge3$, and TwoLog_n is initialized to the value of $2\lceil\log{2n}\rceil$
for (k=3; k <= n; k++)
A[k] = 0;
for (k=2; k <= TwoLog_n; k++)
for (j=k+1; j <= n; j++)
A[j] = A[j] || (j%k);
for (j=3; j <= n; j++)
if (!A[j]) printf(”%d ”,j);
Can anyone tell me what this piece of code fragment basically does??