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}}==
9,482

edits