Meissel–Mertens constant: Difference between revisions
Added Go
m (→{{header|Phix}}: added analytical/gmp version) |
(Added Go) |
||
Line 38:
:* Details in the Wikipedia article: [https://en.wikipedia.org/wiki/Meissel%E2%80%93Mertens_constant Meissel–Mertens constant]
<br /><br />
=={{header|Go}}==
{{trans|Wren}}
{{libheader|Go-rcu}}
Unlike the Wren example, slowly converging towards the correct answer.
<syntaxhighlight lang="go">package main
import (
"fmt"
"math"
"rcu"
)
func contains(a []int, f int) bool {
for _, e := range a {
if e == f {
return true
}
}
return false
}
func main() {
const euler = 0.57721566490153286
primes := rcu.Primes(1 << 31)
pc := len(primes)
sum := 0.0
fmt.Println("Primes added M")
fmt.Println("------------ --------------")
for i, p := range primes {
rp := 1.0 / float64(p)
sum += math.Log(1.0-rp) + rp
c := i + 1
if (c%1e7) == 0 || c == pc {
fmt.Printf("%11s %0.12f\n", rcu.Commatize(c), sum+euler)
}
}
}</syntaxhighlight>
{{out}}
<pre>
Primes added M
------------ --------------
10,000,000 0.261497212987
20,000,000 0.261497212912
30,000,000 0.261497212889
40,000,000 0.261497212878
50,000,000 0.261497212871
60,000,000 0.261497212867
70,000,000 0.261497212864
80,000,000 0.261497212862
90,000,000 0.261497212861
100,000,000 0.261497212859
105,097,565 0.261497212858
</pre>
=={{header|Julia}}==
Line 52 ⟶ 107:
@show meissel_mertens(100_000_000) # meissel_mertens(100000000) = 0.2614972128591237
</syntaxhighlight>
=={{header|PARI/GP}}==
|