﻿#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
#include <cassert>
#include <iomanip>

using namespace std;

typedef long long ll;
typedef long double ld;

#define int ll
#define mp make_pair
#define pb push_back
#define pi pair<int, int>
#define vi vector<int>
#define vpi vector<pi>
#define vvpi vector<vpi>
#define vs vector<string>
#define ff first
#define ss second
#define vvi vector<vi>
#define len(v) int(v.size())
#define all(v) v.begin(), v.end()
#define in_rng(i, n) i >= n ? i - n : ((i >= 0) ? i : i + n)


ll bin_pow(ll base, ll deg, ll md) {
    if (!deg)
        return 1;
    if (deg % 2)
        return base * bin_pow(base, deg - 1, md) % md;
    ll res = bin_pow(base, deg / 2, md);
    return res * res % md;
}

//const int max_a = 3e5 + 7;
template <typename T1, typename T2>
bool cmin(T1& a, const T2& b) {
    if (a <= b)
        return false;
    a = b;
    return true;
}

template <typename T1, typename T2>
bool cmax(T1& a, const T2& b) {
    if (a >= b)
        return false;
    a = b;
    return true;
}

int get_rand_int(int mn, int mx) {
    return rand() % (mx - mn + 1) + mn;
}


const int md = 1e9 + 7;

int inv(int a) {
    return bin_pow(a, md - 2, md);
}

int gcd(int a, int b) {
    if (!b)
        return a;
    return gcd(b, a % b);
}

const int max_n = 1e6 + 7;


int get_bit(int m, int index) {
    return (bool)(m >> index) & 1;
}

int invert(int num, int n) {
    for (int i = 0; i <= n; ++i) {
        num ^= 1 << i;
    }
    return num;
}

void run() {
    int n, a, b;
    cin >> n >> a >> b;
    if (a == 1) {
        if ((n - 1) % b == 0)
            cout << "Yes\n";
        else
            cout << "No\n";
        return;
    }
    int mult = 1;
    for (; mult <= n; mult *= a) {
        int res = mult;
        if ((n - mult) % b == 0) {
            cout << "Yes\n";
            return;
        }

    }
    cout << "No\n";
}


signed main() {
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(0);
    /*
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    //*/
    //cout << fixed << setprecision(12);
    size_t t = 1;
    std::cin >> t;
    for (size_t i = 0; i < t; ++i) {
        //arr.clear();
        run();
    }
    int tmp;
    //std::cin >> tmp;
}