← Home
For problem statement at 1000-1999/1200-1299/1290-1299/1295/problemD.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1290-1299/1295/verifierD.go ends with All 100 tests passed can you fix the verifier? ```go
package main

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

func gcd(a, b uint64) uint64 {
	for b != 0 {
		a, b = b, a % b
	}
	return a
}

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

func main() {
	in := bufio.NewReader(os.Stdin)
	var T int
	fmt.Fscan(in, &T)
	for i := 0; i < T; i++ {
		var a, m uint64
		fmt.Fscan(in, &a, &m)
		d := gcd(a, m)
		n := m / d
		fmt.Println(phi(n))
	}
}
```