Sylvester's sequence: Difference between revisions
Content added Content deleted
m (→{{header|Haskell}}: Added an applicative variant) |
(Added Go) |
||
Line 297: | Line 297: | ||
Or, in other words, the sum is <code>2739245…392080'''5/'''2739245…392080'''6'''</code>. |
Or, in other words, the sum is <code>2739245…392080'''5/'''2739245…392080'''6'''</code>. |
||
=={{header|Go}}== |
|||
{{trans|Wren}} |
|||
<lang go>package main |
|||
import ( |
|||
"fmt" |
|||
"math/big" |
|||
) |
|||
func main() { |
|||
one := big.NewInt(1) |
|||
two := big.NewInt(2) |
|||
next := new(big.Int) |
|||
sylvester := []*big.Int{two} |
|||
prod := new(big.Int).Set(two) |
|||
count := 1 |
|||
for count < 10 { |
|||
next.Add(prod, one) |
|||
sylvester = append(sylvester, new(big.Int).Set(next)) |
|||
count++ |
|||
prod.Mul(prod, next) |
|||
} |
|||
fmt.Println("The first 10 terms in the Sylvester sequence are:") |
|||
for i := 0; i < 10; i++ { |
|||
fmt.Println(sylvester[i]) |
|||
} |
|||
sumRecip := new(big.Rat) |
|||
for _, s := range sylvester { |
|||
sumRecip.Add(sumRecip, new(big.Rat).SetFrac(one, s)) |
|||
} |
|||
fmt.Println("\nThe sum of their reciprocals as a rational number is:") |
|||
fmt.Println(sumRecip) |
|||
fmt.Println("\nThe sum of their reciprocals as a decimal number (to 211 places) is:") |
|||
fmt.Println(sumRecip.FloatString(211)) |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
The first 10 terms in the Sylvester sequence are: |
|||
2 |
|||
3 |
|||
7 |
|||
43 |
|||
1807 |
|||
3263443 |
|||
10650056950807 |
|||
113423713055421844361000443 |
|||
12864938683278671740537145998360961546653259485195807 |
|||
165506647324519964198468195444439180017513152706377497841851388766535868639572406808911988131737645185443 |
|||
The sum of their reciprocals as a rational number is: |
|||
27392450308603031423410234291674686281194364367580914627947367941608692026226993634332118404582438634929548737283992369758487974306317730580753883429460344956410077034761330476016739454649828385541500213920805/27392450308603031423410234291674686281194364367580914627947367941608692026226993634332118404582438634929548737283992369758487974306317730580753883429460344956410077034761330476016739454649828385541500213920806 |
|||
The sum of their reciprocals as a decimal number (to 211 places) is: |
|||
0.9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999635 |
|||
</pre> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |