15 lines
524 B
Text
15 lines
524 B
Text
func ramanujan_const(x, decimals=32) {
|
|
local Num!PREC = *"#{4*round((Num.pi*√x)/log(10) + decimals + 1)}"
|
|
exp(Num.pi * √x) -> round(-decimals).to_s
|
|
}
|
|
|
|
var decimals = 100
|
|
printf("Ramanujan's constant to #{decimals} decimals:\n%s\n\n",
|
|
ramanujan_const(163, decimals))
|
|
|
|
say "Heegner numbers yielding 'almost' integers:"
|
|
[19, 96, 43, 960, 67, 5280, 163, 640320].each_slice(2, {|h,x|
|
|
var c = ramanujan_const(h, 32)
|
|
var n = (x**3 + 744)
|
|
printf("%3s: %51s ≈ %18s (diff: %s)\n", h, c, n, n-Num(c))
|
|
})
|