#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pi (3.141592653589)
#define mod 1000000007
#define int long long
#define float double
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define fr(i, N) for(int i = 0; i < (int) N; i++)
#define frr(i, A, B) for(int i = (int) A; i <= (int) B; i++)
#define fro(i, A, B) for(int i = (int) A; i >= (int) B; i--)
#define all(c) c.begin(), c.end()
#define min3(a, b, c) min(c, min(a, b))
#define min4(a, b, c, d) min(d, min(c, min(a, b)))
#define rrep(i, n) for(int i=n-1;i>=0;i--)
#define rep(i,n) for(int i=0;i<n;i++)
#define ll long long
#define fast ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);


int GCD(int A, int B) {return (B) ? GCD(B, A % B) : A;}
int LCM(int A, int B) {return A * B / GCD(A, B);}
int max(int A, int B) {return (A >= B) ? A : B;}
int min(int A, int B) {return (A <= B) ? A : B;}


bool isPrime(int n){
    if(n==1) return false;
    if(n==2) return true;
    for(int i=2;i*i<=n;i++){
        if(n%i==0)return false;
    }
    return true;
}

void kan(){
    ll a,b,n;
    cin>>n>>a>>b;
    if(a==1){
        if((n-1)%b==0) cout<<"Yes\n";
        else cout<<"No\n";
        return;
    }
    else{
        ll num=1;
        while(num<=n){
            if((n-num)%b==0){ cout<<"Yes\n";
            return;
            }
        num *=a;
        }
    cout<<"No\n";
    }
    
}
int32_t main(){
fast
int t;
cin>>t;
while(t--){
    kan();
}
return 0;
}
