Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
34
Task/Truncatable-primes/Nim/truncatable-primes.nim
Normal file
34
Task/Truncatable-primes/Nim/truncatable-primes.nim
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import sets, strutils, algorithm
|
||||
|
||||
proc primes(n): seq[int64] =
|
||||
result = @[]
|
||||
var multiples = initSet[int64]()
|
||||
for i in 2..n:
|
||||
if i notin multiples:
|
||||
result.add i
|
||||
for j in countup(i*i, n, i.int):
|
||||
multiples.incl j
|
||||
|
||||
proc truncatablePrime(n): tuple[left: int64, right: int64] =
|
||||
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'i64)
|
||||
Loading…
Add table
Add a link
Reference in a new issue