Sieve of Eratosthenes: Difference between revisions
Content added Content deleted
(→{{header|J}}: simplify) |
m (→{{header|J}}) |
||
Line 9,640: | Line 9,640: | ||
<lang J> sieve 100 |
<lang J> sieve 100 |
||
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97</lang> |
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97</lang> |
||
To see into how this works, we can change the definition: |
|||
<lang J>sieve=: {{ |
|||
r=. 0#t=. y# j=.1 |
|||
while. y>j=.j+1 do. |
|||
if. j{t do. |
|||
echo j;(y$j{.1);t=. t > y$j{.1 |
|||
r=. r, j |
|||
end. |
|||
end. |
|||
}}</lang> |
|||
And go:<lang J> sieve 10 |
|||
┌─┬───────────────────┬───────────────────┐ |
|||
│2│1 0 1 0 1 0 1 0 1 0│0 1 0 1 0 1 0 1 0 1│ |
|||
└─┴───────────────────┴───────────────────┘ |
|||
┌─┬───────────────────┬───────────────────┐ |
|||
│3│1 0 0 1 0 0 1 0 0 1│0 1 0 0 0 1 0 1 0 0│ |
|||
└─┴───────────────────┴───────────────────┘ |
|||
┌─┬───────────────────┬───────────────────┐ |
|||
│5│1 0 0 0 0 1 0 0 0 0│0 1 0 0 0 0 0 1 0 0│ |
|||
└─┴───────────────────┴───────────────────┘ |
|||
┌─┬───────────────────┬───────────────────┐ |
|||
│7│1 0 0 0 0 0 0 1 0 0│0 1 0 0 0 0 0 0 0 0│ |
|||
└─┴───────────────────┴───────────────────┘ |
|||
2 3 5 7</lang> |
|||
=={{header|Janet}}== |
=={{header|Janet}}== |