Concatenate two primes is also prime: Difference between revisions
Content added Content deleted
Catskill549 (talk | contribs) (added AWK) |
|||
Line 277: | Line 277: | ||
</pre> |
</pre> |
||
=={{header|jq}}== |
|||
{{works with|jq}} |
|||
'''Works with gojq, the Go implementation of jq''' |
|||
'''Preliminaries''' |
|||
<lang jq>def is_prime: |
|||
. as $n |
|||
| if ($n < 2) then false |
|||
elif ($n % 2 == 0) then $n == 2 |
|||
elif ($n % 3 == 0) then $n == 3 |
|||
elif ($n % 5 == 0) then $n == 5 |
|||
elif ($n % 7 == 0) then $n == 7 |
|||
elif ($n % 11 == 0) then $n == 11 |
|||
elif ($n % 13 == 0) then $n == 13 |
|||
elif ($n % 17 == 0) then $n == 17 |
|||
elif ($n % 19 == 0) then $n == 19 |
|||
else {i:23} |
|||
| until( (.i * .i) > $n or ($n % .i == 0); .i += 2) |
|||
| .i * .i > $n |
|||
end; |
|||
# Emit an array of primes less than `.` |
|||
def primes: |
|||
if . < 2 then [] |
|||
else |
|||
[2] + [range(3; .; 2) | select(is_prime)] |
|||
end; |
|||
# Pretty-printing |
|||
def nwise($n): |
|||
def n: if length <= $n then . else .[0:$n] , (.[$n:] | n) end; |
|||
n; |
|||
def lpad($len): tostring | ($len - length) as $l | (" " * $l)[:$l] + .; |
|||
</lang> |
|||
'''The task''' |
|||
<lang jq># Emit [p1,p2] where p1 < p2 < . and the concatenation is prime |
|||
def concatenative_primes: |
|||
primes |
|||
| range(0;length) as $i |
|||
| range($i+1;length) as $j |
|||
| [.[$i], .[$j]], [.[$j], .[$i]] |
|||
| select( map(tostring) | add | tonumber | is_prime); |
|||
[100 | concatenative_primes | join("||")] |
|||
| (nwise(10) | map(lpad(6)) | join(" "))</lang> |
|||
{{out}} |
|||
<pre> |
|||
2||3 2||11 2||23 2||29 2||41 2||71 2||83 5||3 3||7 7||3 |
|||
3||11 11||3 3||13 3||17 17||3 19||3 23||3 29||3 3||31 31||3 |
|||
3||37 37||3 43||3 3||47 3||53 3||59 59||3 61||3 3||67 67||3 |
|||
3||73 73||3 3||79 3||83 3||89 3||97 5||23 5||41 5||47 5||71 |
|||
13||7 7||19 19||7 31||7 7||43 7||61 61||7 67||7 7||73 79||7 |
|||
7||97 97||7 11||17 11||23 23||11 11||29 41||11 11||53 11||71 83||11 |
|||
13||19 19||13 13||61 61||13 13||67 13||73 17||23 29||17 17||41 17||47 |
|||
17||53 17||59 17||83 83||17 17||89 19||31 31||19 37||19 67||19 19||73 |
|||
19||79 79||19 19||97 97||19 23||41 23||47 47||23 53||23 59||23 23||71 |
|||
23||83 23||89 89||23 41||29 47||29 29||53 29||71 71||29 83||29 89||29 |
|||
31||37 61||31 31||67 73||31 43||37 37||61 37||67 67||37 37||79 79||37 |
|||
37||97 41||53 41||59 89||41 61||43 43||73 43||97 97||43 53||47 47||59 |
|||
47||83 47||89 59||53 83||53 71||59 67||61 61||73 61||97 67||79 97||67 |
|||
</pre> |
|||
=={{header|Julia}}== |
=={{header|Julia}}== |
||
<lang julia>using Primes |
<lang julia>using Primes |
||
Line 291: | Line 353: | ||
foreach(p -> print(lpad(last(p), 5), first(p) % 16 == 0 ? "\n" : ""), |
foreach(p -> print(lpad(last(p), 5), first(p) % 16 == 0 ? "\n" : ""), |
||
catprimes() |> enumerate) |
catprimes() |> enumerate) |
||
</lang>{{out}} |
</lang>{{out}} |
||
<pre> |
|||
23 37 53 73 113 137 173 193 197 211 223 229 233 241 271 283 |
23 37 53 73 113 137 173 193 197 211 223 229 233 241 271 283 |
||
293 311 313 317 331 337 347 353 359 367 373 379 383 389 397 433 |
293 311 313 317 331 337 347 353 359 367 373 379 383 389 397 433 |