For problem statement at 0-999/200-299/230-239/235/problemE.txt this is a correct solution, but verifier at 0-999/200-299/230-239/235/verifierE.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
var a, b, c int
fmt.Fscan(in, &a, &b, &c)
dims := []int{a, b, c}
sort.Ints(dims)
a, b, c = dims[0], dims[1], dims[2]
maxX := a * b
cnt := make([]int, maxX+1)
for i := 1; i <= a; i++ {
for j := 1; j <= b; j++ {
cnt[i*j]++
}
}
g := make([]int64, c+1)
for d := 1; d <= c; d++ {
var s int64
for q := d; q <= c; q += d {
s += int64(c / q)
}
g[d] = s
}
spf := make([]int, maxX+1)
if maxX >= 1 {
spf[1] = 1
}
for i := 2; i <= maxX; i++ {
if spf[i] == 0 {
spf[i] = i
if i <= maxX/i {
for j := i * i; j <= maxX; j += i {
if spf[j] == 0 {
spf[j] = i
}
}
}
}
}
var res int64
var primes [8]int
var exps [8]int
var posStack [256]int
var dStack [256]int
var coeffStack [256]int64
for x := 1; x <= maxX; x++ {
if cnt[x] == 0 {
continue
}
n := x
m := 0
for n > 1 {
p := spf[n]
e := 0
for n%p == 0 {
n /= p
e++
}
primes[m] = p
exps[m] = e
m++
}
var fx int64
top := 0
posStack[0] = 0
dStack[0] = 1
coeffStack[0] = 1
for top >= 0 {
pos := posStack[top]
dcur := dStack[top]
coeff := coeffStack[top]
top--
if pos == m {
fx += coeff * g[dcur]
continue
}
top++
posStack[top] = pos + 1
dStack[top] = dcur
coeffStack[top] = coeff * int64(exps[pos]+1)
nd := dcur * primes[pos]
if nd <= c {
top++
posStack[top] = pos + 1
dStack[top] = nd
coeffStack[top] = coeff * int64(-exps[pos])
}
}
res += int64(cnt[x]) * fx
}
const mod int64 = 1073741824
fmt.Print(res % mod)
}