24 lines
601 B
Text
24 lines
601 B
Text
require "map"
|
|
local int = require "int"
|
|
local fmt = require "fmt"
|
|
|
|
local asc_primes = new set() -- avoids duplicates
|
|
|
|
local function generate(first, cand, digits)
|
|
if digits == 0 then
|
|
if int.isprime(cand) then asc_primes:add(cand) end
|
|
return
|
|
end
|
|
local i = first
|
|
while i <= 9 do
|
|
local next = cand * 10 + i
|
|
generate(i + 1, next, digits - 1)
|
|
++i
|
|
end
|
|
end
|
|
|
|
for digits = 1, 9 do generate(1, 0, digits) end
|
|
asc_primes = asc_primes:keys()
|
|
asc_primes:sort()
|
|
print($"There are {#asc_primes} ascending primes, namely:")
|
|
fmt.tprint("%8d", asc_primes, 5)
|