RosettaCodeData/Task/Successive-prime-differences/Pluto/successive-prime-differences.pluto
2026-04-30 12:34:36 -04:00

35 lines
1 KiB
Text

local int = require "int"
local fmt = require "fmt"
require "table2"
local function successive_primes(primes, diffs)
local results = {}
local dl = #diffs
for i = 1, #primes - dl do
local group = table.rep(dl + 1, 0)
group[1] = primes[i]
for j = i, i + dl - 1 do
if primes[j + 1] - primes[j] != diffs[j - i + 1] then
continue 2
end
group[j - i + 2] = primes[j + 1]
end
results:insert(group)
end
return results
end
local primes = int.primes(999_999)
local diffs_list = { {2}, {1}, {2, 2}, {2, 4}, {4, 2}, {6, 4, 2} }
print("For primes less than 1,000,000:-\n")
for diffs_list as diffs do
print($" For differences of {fmt.swrite(diffs)} ->")
local sp = successive_primes(primes, diffs)
if #sp == 0 then
print(" No groups found\n")
continue
end
print($" First group = {fmt.swrite(sp[1])}")
print($" Last group = {fmt.swrite(sp[#sp])}")
print($" Number found = {#sp}\n")
end