Truncatable primes: Difference between revisions
Content added Content deleted
m (Verbage) |
(Add Nimrod) |
||
Line 1,045: | Line 1,045: | ||
739399 is the largest right truncatable prime <= 1000000. |
739399 is the largest right truncatable prime <= 1000000. |
||
</lang> |
</lang> |
||
=={{header|Nimrod}}== |
|||
{{trans|Python}} |
|||
<lang nimrod>import sets, strutils, algorithm |
|||
proc primes(n): seq[int] = |
|||
result = @[] |
|||
var multiples = initSet[int]() |
|||
for i in 2..n: |
|||
if i notin multiples: |
|||
result.add i |
|||
for j in countup(i*i, n, i): |
|||
multiples.incl j |
|||
proc truncatablePrime(n): tuple[left: int, right: int] = |
|||
var |
|||
primelist: seq[string] = @[] |
|||
for x in primes(n): |
|||
primelist.add($x) |
|||
reverse primelist |
|||
var primeset = toSet primelist |
|||
for n in primelist: |
|||
var alltruncs = initSet[string]() |
|||
for i in 0..n.len: |
|||
alltruncs.incl n[1..n.high] |
|||
if alltruncs <= primeset: |
|||
result.left = parseInt(n) |
|||
break |
|||
for n in primelist: |
|||
var alltruncs = initSet[string]() |
|||
for i in 0..n.len: |
|||
alltruncs.incl n[0..i] |
|||
if alltruncs <= primeset: |
|||
result.right = parseInt(n) |
|||
break |
|||
echo truncatablePrime(1000000)</lang> |
|||
Output: |
|||
<pre>(left: 999961, right: 739399)</pre> |
|||
=={{header|ooRexx}}== |
=={{header|ooRexx}}== |
||
<lang ooRexx> |
<lang ooRexx> |