RosettaCodeData/Task/Eulers-constant-0.5772.../Picat/eulers-constant-0.5772...-3.picat
2023-07-01 13:44:08 -04:00

21 lines
430 B
Text

main =>
Gamma = 0.577215664901532860606512090082402,
println(gamma=Gamma),
member(N, 1..23),
G = gamma(N),
println([n=N,g=G,diff=G-Gamma]),
fail,
nl.
gamma(N) = Gamma =>
Gamma = 1/2 - 1/3,
foreach(I in 2..N)
Power = 2**I,
Sign = -1,
Term = 0,
foreach(Denominator in Power..(2*Power-1))
Sign := Sign * -1,
Term := Term + Sign / Denominator
end,
Gamma := Gamma + I*Term
end.