一、不废话啰嗦,上代码
https://codeforces.com/contest/1542/problem/B
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(){
ll n, a, b, num = 1; // 注意,这边num累加器必须开long long,不然Test2就会TLE
cin >> n >> a >> b;
while (num <= n){
if ((n - num) % b == 0){
printf("Yes\n");
return ;
}
num *= a;
if (a == 1) break; // 这一步至关重要:如果a = 1,并且也不能通过不断加b得到n,那么就应该break,以免不断x1进入死循环
}
printf("No\n");
}
int main(){
int T;
cin >> T;
while(T--) solve();
return 0;
}