← Home
For problem statement at 0-999/0-99/90-99/98/problemB.txt this is a correct solution, but verifier at 0-999/0-99/90-99/98/verifierB.go ends with case 1 failed: expected 3340/321 got 104272585170824068/9007199254740993
input:1284
exit status 1 can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"math/big"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	var n int
	fmt.Fscan(in, &n)

	if n == 1 {
		fmt.Print("0/1")
		return
	}

	a := 0
	m := n
	for m%2 == 0 {
		a++
		m /= 2
	}

	if m == 1 {
		fmt.Printf("%d/1", a)
		return
	}

	var b big.Int
	var tmp big.Int

	r := 1
	l := 0
	for {
		b.Lsh(&b, 1)
		tmp.SetInt64(int64(r))
		b.Add(&b, &tmp)
		r = (r * 2) % m
		l++
		if r == 1 {
			break
		}
	}

	one := big.NewInt(1)

	var den big.Int
	den.SetInt64(1)
	den.Lsh(&den, uint(l))
	den.Sub(&den, one)

	var num big.Int
	num.Lsh(&b, 1)

	if a > 0 {
		var add big.Int
		add.SetInt64(int64(a))
		add.Mul(&add, &den)
		num.Add(&num, &add)
	}

	var g big.Int
	g.GCD(nil, nil, &num, &den)
	num.Quo(&num, &g)
	den.Quo(&den, &g)

	out := bufio.NewWriter(os.Stdout)
	fmt.Fprintf(out, "%s/%s", num.String(), den.String())
	out.Flush()
}
```