#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mod 1000000007
#define inf 1e17
#define mod 1000000007
#define INF 1e17
#define eps 1e-9
#define FASTIO ios_base::sync_with_stdio(false);cin.tie(NULL);
#define MAXN   1000001
 
// stores smallest prime factor for every number
ll spf[MAXN];
 
// Calculating SPF (Smallest Prime Factor) for every
// number till MAXN.
// Time Complexity : O(nloglogn)
void sieve()
{
    spf[1] = 1;
    for (ll i=2; i<MAXN; i++)
 
        // marking smallest prime factor for every
        // number to be itself.
        spf[i] = i;
 
    // separately marking spf for every even
    // number as 2
    for (ll i=4; i<MAXN; i+=2)
        spf[i] = 2;
 
    for (ll i=3; i*i<MAXN; i++)
    {
        // checking if i is prime
        if (spf[i] == i)
        {
            // marking SPF for all numbers divisible by i
            for (ll j=i*i; j<MAXN; j+=i)
 
                // marking spf[j] if it is not
                // previously marked
                if (spf[j]==j)
                    spf[j] = i;
        }
    }
}
 
// A O(log n) function returning primefactorization
// by dividing by smallest prime factor at every step
vector<ll > getFactorization(ll x)
{
    vector<ll> ret;
    while (x != 1)
    {
        ret.push_back(spf[x]);
        x = x / spf[x];
    }
    return ret;
}
ll power(ll x,ll y)
{
    ll res = 1;     // Initialize result
 
    x = x % mod; // Update x if it is more than or
                // equal to p
  
    if (x == 0) return 0; // In case x is divisible by p;
 
    while (y > 0)
    {
        // If y is odd, multiply x with result
        if (y & 1)
            res = (res*x) % (mod);
 
        // y must be even now
        y = y>>1; // y = y/2
        x = (x*x) % (mod);
    }
    return res;
}

class myComparator
{
public:
    bool operator() (ll p1, ll p2)
    {
        return p1 > p2;
    }
};

map<string,ll>mp2;
map<ll,string>mp3;
bool compa(vector<ll>a,vector<ll>b)
{
if (a[0]==b[0]){
  if (a[1]==b[1]){
    if (a[2]==b[2]){
    return mp3[a[3]]<mp3[b[3]];
    }
    return a[2]>b[2];
  }
  return a[1]>b[1];
}
return a[0]>b[0];
}


void fun(){
ll i,j,k,t,r,h,m,n,a,b;
cin>>n>>a>>b;
ll x=n;
ll d=1;

for(i=0;i<33;i++){
  if (d>n){
    break;
  }
  if ((n-d)%b==0){
    cout<<"Yes"<<endl;
    return;
  }
  d=a*d;
  if (d==1)
  break;
}

cout<<"No"<<endl;return;

}


int main(){
  ll t=1;
  FASTIO;
  cin>>t;
  while(t--){
    fun();
  }
}
