42 lines
1,021 B
Text
42 lines
1,021 B
Text
with javascript_semantics
|
|
include mpfr.e
|
|
|
|
constant lim = 100,
|
|
lim1 = lim+1,
|
|
last = 12
|
|
sequence l = repeat(0,lim1)
|
|
for n=1 to lim1 do
|
|
l[n] = mpz_inits(lim1)
|
|
mpz_set_si(l[n][n],1)
|
|
if n!=2 then
|
|
mpz_fac_ui(l[n][2],n-1)
|
|
end if
|
|
end for
|
|
mpz {t, m100} = mpz_inits(2)
|
|
for n=1 to lim do
|
|
for k=1 to n do
|
|
mpz_mul(t,l[n+1][2],l[n][2])
|
|
mpz_fdiv_q(t, t, l[k+1][2])
|
|
mpz_fdiv_q(t, t, l[k][2])
|
|
mpz_fdiv_q(l[n+1][k+1], t, l[n-k+1][2])
|
|
end for
|
|
end for
|
|
printf(1,"Unsigned Lah numbers: l(n, k):\n n k:")
|
|
for i=0 to last do
|
|
printf(1,"%6d ", i)
|
|
end for
|
|
printf(1,"\n--- %s\n",repeat('-',last*11+6))
|
|
for n=0 to last do
|
|
printf(1,"%2d ", n)
|
|
for k=1 to n+1 do
|
|
printf(1,"%10s ",{mpz_get_str(l[n+1][k])})
|
|
end for
|
|
printf(1,"\n")
|
|
end for
|
|
for k=1 to lim1 do
|
|
mpz l100k = l[lim1][k]
|
|
if mpz_cmp(l100k,m100) > 0 then
|
|
mpz_set(m100,l100k)
|
|
end if
|
|
end for
|
|
printf(1,"\nThe maximum l(100,k): %s\n",shorten(mpz_get_str(m100)))
|