27 lines
610 B
Text
27 lines
610 B
Text
local int = require "int"
|
|
require "bignum"
|
|
|
|
local list = range(2, 20)
|
|
list:insert(65)
|
|
mpz.init()
|
|
for list as i do
|
|
if int.isprime(i) then
|
|
print($"HP{i} = {i}")
|
|
continue
|
|
end
|
|
local n = 1
|
|
local j = bigint.new(i)
|
|
local h = {j}
|
|
while true do
|
|
local k = mpz.factors(j):map(|f| -> f:tostring()):concat("")
|
|
j = bigint.new(k)
|
|
h:insert(j)
|
|
if mpz.isprobableprime(j, 10) then
|
|
for l = n, 1, -1 do io.write($"HP{h[n - l + 1]}({l}) = ") end
|
|
print(h[n + 1])
|
|
break
|
|
else
|
|
n += 1
|
|
end
|
|
end
|
|
end
|