Emirp primes: Difference between revisions

Content deleted Content added
Chunes (talk | contribs)
added Factor
Line 752:
{{out}}
<pre>
948349
</pre>
 
=={{header|Factor}}==
<lang factor>USING: io kernel lists lists.lazy math.extras math.parser
math.primes sequences ;
FROM: prettyprint => . pprint ;
IN: rosetta-code.emirp
 
: rev ( n -- n' )
number>string reverse string>number ;
 
: emirp? ( n -- ? )
dup rev [ = not ] [ [ prime? ] bi@ ] 2bi and and ;
: nemirps ( n -- seq )
0 lfrom [ emirp? ] lfilter ltake list>array ;
: print-seq ( seq -- )
[ pprint bl ] each nl ;
: part1 ( -- )
"First 20 emirps:" print 20 nemirps print-seq ;
: part2 ( -- )
"Emirps between 7700 and 8000:" print
7700 ... 8000 [ emirp? ] filter print-seq ;
: part3 ( -- )
"10,000th emirp:" print 10,000 nemirps last . ;
: main ( -- )
part1 nl part2 nl part3 ;
MAIN: main</lang>
{{out}}
<pre>
First 20 emirps:
13 17 31 37 71 73 79 97 107 113 149 157 167 179 199 311 337 347 359 389
 
Emirps between 7700 and 8000:
7717 7757 7817 7841 7867 7879 7901 7927 7949 7951 7963
 
10,000th emirp:
948349
</pre>