package main
import (
"bufio"
"fmt"
"os"
)
var cnt [20000005]int8
func main() {
for i := 2; i < 20000005; i++ {
if cnt[i] == 0 {
for j := i; j < 20000005; j += i {
cnt[j]++
}
}
}
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
t := readInt(reader)
for i := 0; i < t; i++ {
c := readInt(reader)
d := readInt(reader)
x := readInt(reader)
ans := 0
for g := 1; g*g <= x; g++ {
if x%g == 0 {
k1 := x/g + d
if k1%c == 0 {
ans += 1 << cnt[k1/c]
}
if g*g != x {
k2 := g + d
if k2%c == 0 {
ans += 1 << cnt[k2/c]
}
}
}
}
fmt.Fprintln(writer, ans)
}
}
func readInt(reader *bufio.Reader) int {
var n int
var c byte
for {
c, _ = reader.ReadByte()
if c >= '0' && c <= '9' {
break
}
}
for {
n = n*10 + int(c-'0')
c, _ = reader.ReadByte()
if c < '0' || c > '9' {
break
}
}
return n
}