← Home
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
}