From f5d0ff1e61d0e57eb697f228c3bbb52ec463b9fa Mon Sep 17 00:00:00 2001 From: filifa Date: Mon, 18 Aug 2025 23:37:52 -0400 Subject: [PATCH] write a function for sequence calculation --- cmd/convergents.go | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/cmd/convergents.go b/cmd/convergents.go index 3daa8e8..3d665e9 100644 --- a/cmd/convergents.go +++ b/cmd/convergents.go @@ -24,6 +24,14 @@ import ( "github.com/spf13/cobra" ) +func seq(x, xprev, a *big.Int) { + tmp := new(big.Int) + tmp.Mul(a, x) + tmp.Add(tmp, xprev) + xprev.Set(x) + x.Set(tmp) +} + func convergents(cmd *cobra.Command, args []string) { hprev := big.NewInt(0) kprev := big.NewInt(1) @@ -44,32 +52,14 @@ func convergents(cmd *cobra.Command, args []string) { } } - tmp := new(big.Int) - tmp.Mul(a0, h) - tmp.Add(tmp, hprev) - hprev.Set(h) - h.Set(tmp) - - tmp.Mul(a0, k) - tmp.Add(tmp, kprev) - kprev.Set(k) - k.Set(tmp) - + seq(h, hprev, a0) + seq(k, kprev, a0) fmt.Println(h, k) for i := 0; true; i = (i + 1) % len(denoms) { a := &denoms[i] - - tmp.Mul(a, h) - tmp.Add(tmp, hprev) - hprev.Set(h) - h.Set(tmp) - - tmp.Mul(a, k) - tmp.Add(tmp, kprev) - kprev.Set(k) - k.Set(tmp) - + seq(h, hprev, a) + seq(k, kprev, a) fmt.Println(h, k) } }