Jump to content

Unprimeable numbers: Difference between revisions

m (→‎{{header|Phix}}: added syntax colouring)
Line 1,135:
II: 186884ms - timer ended
</pre>
 
=={{header|jq}}==
{{works with|jq}}
'''Works with gojq, the Go implementation of jq'''
 
See e.g. [[Erd%C5%91s-primes#jq]] for a suitable definition of `is_prime` as used here.
 
'''Preliminaries'''
<lang jq>def digits: tostring | explode | map([.] | implode | tonumber);
 
def lpad($len): tostring | ($len - length) as $l | (" " * $l)[:$l] + .;
</lang>
'''Unprimeables'''
<lang jq>
def variants:
digits
| range(0; length) as $pos
| range(0;10) as $newdigit
| if .[$pos] == $newdigit then empty
else .[$pos] = $newdigit
| join("")|tonumber
end;
def is_unprimeable:
if is_prime or any(variants; is_prime) then false
else true
end;
 
def unprimeables:
range(4; infinite) | select(is_unprimeable);</lang>
 
'''The Tasks'''
<lang jq>def task:
"First 35 unprimeables: ",
[limit(35; range(0;infinite) | select(is_unprimeable))],
 
"\nThe 600th unprimeable is \( nth(600 - 1; unprimeables) ).",
 
"\nDigit First unprimeable ending with that digit",
"-----------------------------------------------",
(range(0;10) as $dig
| first( range(0;infinite) | select((. % 10 == $dig) and is_unprimeable))
| " \($dig) \(lpad(9))" )
;
 
task</lang>
{{out}}
<pre>
First 35 unprimeables:
[200,204,206,208,320,322,324,325,326,328,510,512,514,515,516,518,530,532,534,535,536,538,620,622,624,625,626,628,840,842,844,845,846,848,890]
 
The 600th unprimeable is 5242.
 
Digit First unprimeable ending with that digit
-----------------------------------------------
0 200
1 595631
2 322
3 1203623
4 204
5 325
6 206
7 872897
8 208
9 212159
</pre>
 
 
=={{header|Julia}}==
2,465

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.