For problem statement at 0-999/0-99/20-29/27/problemE.txt this is a correct solution, but verifier at 0-999/0-99/20-29/27/verifierE.go ends with All 528 tests passed. can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
const INF uint64 = 1000000000000000000
var primes = []uint64{2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53}
var ans uint64
func dfs(idx, lastExp, rem int, curr uint64) {
if rem == 1 {
if curr < ans {
ans = curr
}
return
}
if idx >= len(primes) || curr >= ans {
return
}
p := primes[idx]
pPow := uint64(1)
for e := 1; e <= lastExp; e++ {
if pPow > INF/p {
break
}
pPow *= p
if curr > INF/pPow {
break
}
if rem%(e+1) == 0 {
newCurr := curr * pPow
if newCurr < ans {
dfs(idx+1, e, rem/(e+1), newCurr)
}
}
}
}
func main() {
in := bufio.NewReader(os.Stdin)
var n int
if _, err := fmt.Fscan(in, &n); err != nil {
return
}
if n == 1 {
fmt.Println(1)
return
}
ans = INF
dfs(0, 60, n, 1)
fmt.Println(ans)
}