← Home
For problem statement at 1000-1999/1100-1199/1180-1189/1184/problemA2.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1180-1189/1184/verifierA2.go ends with All 209 tests passed can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func phi(n int) int {
	result := n
	for i := 2; i*i <= n; i++ {
		if n%i == 0 {
			for n%i == 0 {
				n /= i
			}
			result -= result / i
		}
	}
	if n > 1 {
		result -= result / n
	}
	return result
}

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n int
	fmt.Fscan(in, &n)
	var s string
	fmt.Fscan(in, &s)

	divs := make([]int, 0)
	for i := 1; i*i <= n; i++ {
		if n%i == 0 {
			divs = append(divs, i)
			if i*i != n {
				divs = append(divs, n/i)
			}
		}
	}

	counts := make([]int, n)
	ans := 0

	for _, g := range divs {
		for i := 0; i < g; i++ {
			counts[i] = 0
		}

		idx := 0
		for i := 0; i < n; i++ {
			if s[i] == '1' {
				counts[idx] ^= 1
			}
			idx++
			if idx == g {
				idx = 0
			}
		}

		valid := true
		for i := 0; i < g; i++ {
			if counts[i] != 0 {
				valid = false
				break
			}
		}

		if valid {
			ans += phi(n / g)
		}
	}

	fmt.Fprintln(out, ans)
}
```