#include <iostream>
#include <vector>
#include <cmath>
#include <map>
#include <numeric>
#include <algorithm>
using namespace std;
typedef long long ll;
const int MOD = 1e9 + 7;
// Function for modular exponentiation (b^e % MOD)
ll power(ll base, ll exp) {
ll res = 1;
base %= MOD;
while (exp > 0) {
if (exp % 2 == 1) res = (res * base) % MOD;
base = (base * base) % MOD;
exp /= 2;
}
return res;
}
// Function to compute modular inverse of n under modulo MOD
ll modInverse(ll n) {
return power(n, MOD - 2);
}
// Precompute factorials up to a small limit (max exponent will be ~log2(10^14) < 50)
vector<ll> fact(61);
void precompute_factorials() {
fact[0] = 1;
for (int i = 1; i <= 60; i++) {
fact[i] = (fact[i - 1] * i) % MOD;
}
}
// Calculates C(N + k - 1, k) for large N
ll combinations_large_n(ll N, int k) {
if (k == 0) return 1;
if (k < 0) return 0;
ll n_mod = N % MOD;
ll num = 1;
for (int i = 0; i < k; ++i) {
num = (num * ((n_mod + i) % MOD)) % MOD;
}
ll den_inv = modInverse(fact[k]);
return (num * den_inv) % MOD;
}
// Function to get prime factorization of a number
map<ll, int> get_prime_factorization(ll n) {
map<ll, int> factors;
for (ll i = 2; i * i <= n; ++i) {
while (n % i == 0) {
factors[i]++;
n /= i;
}
}
if (n > 1) {
factors[n]++;
}
return factors;
}
// Calculates the number of ways to form 'num' by multiplying N integers
ll calculate_ways(ll num, ll N, map<ll, ll>& memo) {
if (memo.count(num)) {
return memo[num];
}
map<ll, int> factors = get_prime_factorization(num);
ll ans = 1;
for (auto const& [prime, count] : factors) {
ans = (ans * combinations_large_n(N, count)) % MOD;
}
return memo[num] = ans;
}
void solve(int case_num) {
ll N, A, B;
cin >> N >> A >> B;
// Find all divisors of B
vector<ll> divisors;
for (ll i = 1; i * i <= B; ++i) {
if (B % i == 0) {
divisors.push_back(i);
if (i * i != B) {
divisors.push_back(B / i);
}
}
}
ll total_ways = 0;
map<ll, ll> memo; // Memoization for calculate_ways
for (ll d : divisors) {
if (d <= A) {
ll ways1 = calculate_ways(d, N, memo);
ll ways2 = calculate_ways(B / d, N, memo);
total_ways = (total_ways + (ways1 * ways2) % MOD) % MOD;
}
}
cout << "Case #" << case_num << ": " << total_ways << endl;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
precompute_factorials();
int T;
cin >> T;
for (int i = 1; i <= T; ++i) {
solve(i);
}
return 0;
}