RosettaCodeData/Task/Ascending-primes/Pluto/ascending-primes.pluto
2025-08-11 18:05:26 -07:00

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)