Jordan-Pólya numbers: Difference between revisions

Content added Content deleted
(→‎{{header|Nim}}: append ==={{header|Free pascal}}===)
m (→‎{{header|Julia}}: revise aupto per phix, etc code)
Line 233: Line 233:


=={{header|Julia}}==
=={{header|Julia}}==
<syntaxhighlight lang="julia">""" The aupto() function is taken from the Python code at oeis.org/A001013 """
<syntaxhighlight lang="julia">function aupto(limit::T) where T <: Integer
res = map(factorial, T(1):T(18))
function aupto(lim::T, mx::T = zero(T)) where T <: Integer
lim < 2 && return [one(T)]
k = 2
v, t = [one(T)], one(T)
while k < length(res)
mx == 0 && (mx = lim)
rk = res[k]
for k in 2:mx
for j = 2:length(res)
t *= k
kl = res[j] * rk
t > lim && break
kl > limit && break
append!(v, [t * rest for rest in aupto(lim ÷ t, t)])
while kl <= limit && kl ∉ res
push!(res, kl)
kl *= rk
end
end
k += 1
end
end
return unique(sort!(v))
return sort!((sizeof(T) > sizeof(Int) ? T : Int).(res))[begin+1:end]
end
end