RosettaCodeData/Task/Curzon-numbers/Pluto/curzon-numbers.pluto
2026-04-30 12:34:36 -04:00

27 lines
639 B
Text

local int = require "int"
local fmt = require "fmt"
local function is_curzon(n, k)
local r = k * n
return int.modpow(k, n, r+1) == r
end
for k = 2, 10, 2 do
print($"The first 50 Curzon numbers with base {k}:")
local n = 1
local count = 0
while count < 50 do
if is_curzon(n, k) then
fmt.write("%4d ", n)
count += 1
if count % 10 == 0 then print() end
end
n += 1
end
while true do
if is_curzon(n, k) then count += 1 end
if count == 1000 then break end
n += 1
end
fmt.print("\nOne thousandth: %s\n", fmt.int(n))
end