Truncatable primes: Difference between revisions

Removed "initSet". Changed "toSet" for "toHashSet". Other minor changes.
(Removed "initSet". Changed "toSet" for "toHashSet". Other minor changes.)
Line 2,159:
{{trans|Python}}
<lang nim>import sets, strutils, algorithm
 
proc primes(n: int64): seq[int64] =
var multiples: = initSetHashSet[int64]()
result = @[]
var multiples = initSet[int64]()
for i in 2..n:
if i notin multiples:
Line 2,168 ⟶ 2,167:
for j in countup(i*i, n, i.int):
multiples.incl j
 
proc truncatablePrime(n: int64): tuple[left: int64, right: int64] =
var
primelist: seq[string] = @[]
for x in primes(n):
primelist.add($x)
reverse primelist
var primeset = toSet primelist.toHashSet
for n in primelist:
var alltruncs: = initSetHashSet[string]()
for i in 0..n.len-1high:
alltruncs.incl n[i..n.high]
if alltruncs <= primeset:
Line 2,184 ⟶ 2,183:
break
for n in primelist:
var alltruncs: = initSetHashSet[string]()
for i in 0..n.len-1high:
alltruncs.incl n[0..i]
if alltruncs <= primeset:
result.right = parseInt(n)
break
echo truncatablePrime(1000000'i641000000i64)</lang>
 
{{out}}
echo truncatablePrime(1000000'i64)</lang>
Output:
<pre>(left: 998443, right: 739399)</pre>
 
Anonymous user