For problem statement at 1000-1999/1400-1499/1460-1469/1469/problemD.txt this is a correct solution, but verifier at 1000-1999/1400-1499/1460-1469/1469/verifierD.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"math"
"os"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReader(os.Stdin)}
}
func (fs *FastScanner) NextInt() int {
sign := 1
val := 0
b, _ := fs.r.ReadByte()
for (b < '0' || b > '9') && b != '-' {
b, _ = fs.r.ReadByte()
}
if b == '-' {
sign = -1
b, _ = fs.r.ReadByte()
}
for b >= '0' && b <= '9' {
val = val*10 + int(b-'0')
b, _ = fs.r.ReadByte()
}
return val * sign
}
func ceilSqrt(x int) int {
r := int(math.Sqrt(float64(x)))
if r*r == x {
return r
}
return r + 1
}
func main() {
in := NewFastScanner()
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
t := in.NextInt()
for ; t > 0; t-- {
n := in.NextInt()
chain := []int{n}
for chain[len(chain)-1] > 2 {
chain = append(chain, ceilSqrt(chain[len(chain)-1]))
}
used := make([]bool, n+1)
for _, v := range chain {
if v >= 1 && v <= n {
used[v] = true
}
}
type pair struct{ x, y int }
ops := make([]pair, 0, n+10)
for i := 3; i <= n-1; i++ {
if !used[i] {
ops = append(ops, pair{i, n})
}
}
for i := 0; i < len(chain)-1; i++ {
ops = append(ops, pair{chain[i], chain[i+1]})
ops = append(ops, pair{chain[i], chain[i+1]})
}
fmt.Fprintln(out, len(ops))
for _, p := range ops {
fmt.Fprintln(out, p.x, p.y)
}
}
}
```