Hickerson series of almost integers: Difference between revisions

Go solution
(Less noisy D entry)
(Go solution)
Line 187:
H(16)= 5315654681981354.51 is NOT nearly integer.
H(17)= 130370767029135900.50 is NOT nearly integer.</pre>
 
=={{header|Go}}==
<lang go>package main
 
import (
"fmt"
"math/big"
)
 
func main() {
ln2, _ := new(big.Rat).SetString("0.6931471805599453094172")
h := big.NewRat(1, 2)
h.Quo(h, ln2)
var f big.Rat
var w big.Int
for i := int64(1); i <= 17; i++ {
h.Quo(h.Mul(h, f.SetInt64(i)), ln2)
w.Quo(h.Num(), h.Denom())
f.Sub(h, f.SetInt(&w))
y, _ := f.Float64()
d := fmt.Sprintf("%.3f", y)
fmt.Printf("n: %2d h: %18d%s Nearly integer: %t\n",
i, &w, d[1:], d[2] == '0' || d[2] == '9')
}
}</lang>
{{out}}
<pre>
n: 1 h: 1.041 Nearly integer: true
n: 2 h: 3.003 Nearly integer: true
n: 3 h: 12.996 Nearly integer: true
n: 4 h: 74.999 Nearly integer: true
n: 5 h: 541.002 Nearly integer: true
n: 6 h: 4683.001 Nearly integer: true
n: 7 h: 47292.999 Nearly integer: true
n: 8 h: 545834.998 Nearly integer: true
n: 9 h: 7087261.002 Nearly integer: true
n: 10 h: 102247563.005 Nearly integer: true
n: 11 h: 1622632572.998 Nearly integer: true
n: 12 h: 28091567594.982 Nearly integer: true
n: 13 h: 526858348381.001 Nearly integer: true
n: 14 h: 10641342970443.085 Nearly integer: true
n: 15 h: 230283190977853.037 Nearly integer: true
n: 16 h: 5315654681981354.513 Nearly integer: false
n: 17 h: 130370767029135900.458 Nearly integer: false
</pre>
 
=={{header|Perl 6}}==
1,707

edits