Extra primes: Difference between revisions

Add Factor
(Added Wren)
(Add Factor)
Line 1:
{{Draft task}}
n is an extra prime if n is prime and its digits and sum of digits are also primes.
 
 
 
 
 
 
=={{header|Factor}}==
{{trans|Wren}}
{{works with|Factor|0.99 2020-08-14}}
<lang factor>USING: formatting io kernel math math.functions math.primes
sequences sequences.extras ;
 
: digit ( seq seq -- seq ) [ suffix ] cartesian-map concat ;
: front ( -- seq ) { { 2 } { 3 } { 5 } { 7 } } ;
: middle ( seq -- newseq ) { 2 3 5 7 } digit ;
: end ( seq -- newseq ) { 3 7 } digit ;
 
: candidates ( -- seq )
front
front end
front middle end
front middle middle end
append append append ;
 
: digits>number ( seq -- n )
<reversed> 0 [ 10^ * + ] reduce-index ;
 
"The extra primes with up to 4 digits are:" print
candidates
[ sum prime? ] filter
[ digits>number ] [ prime? ] map-filter
[ 1 + swap "%2d: %4d\n" printf ] each-index</lang>
{{out}}
<pre style="height: 45ex">
The extra primes with up to 4 digits are:
1: 2
2: 3
3: 5
4: 7
5: 23
6: 223
7: 227
8: 337
9: 353
10: 373
11: 557
12: 577
13: 733
14: 757
15: 773
16: 2333
17: 2357
18: 2377
19: 2557
20: 2753
21: 2777
22: 3253
23: 3257
24: 3323
25: 3527
26: 3727
27: 5233
28: 5237
29: 5273
30: 5323
31: 5527
32: 7237
33: 7253
34: 7523
35: 7723
36: 7727
</pre>
 
=={{header|Ring}}==
<lang ring>
1,808

edits