给定三个整数 p,q,b,请你计算十进制表示下的 p/q 的结果在 b 进制下是否为有限小数。
    例:

    1. 输入
    2. 2
    3. 6 12 10
    4. 4 3 10
    5. 输出
    6. YES
    7. NO
    8. 输入
    9. 4
    10. 1 1 2
    11. 9 36 2
    12. 4 12 3
    13. 3 5 4
    14. 输出
    15. YES
    16. YES
    17. YES
    18. NO

    思路:
    1. 通分c = p / q为最简形式

    1. c = p' / q'b进制下是有限小数,意味着bx % q == 0,即q的所有因子包含在b
    1. static void solve() {
    2. int T = ni();
    3. while (T-- > 0) {
    4. long p = nl(), q = nl(), b = nl();
    5. q /= gcd(p, q);
    6. long g = b;
    7. while(q != 1) {
    8. g = gcd(g, q);
    9. if(g == 1) break;
    10. while(q % g == 0) q /= g;
    11. }
    12. if(q == 1) out.println("YES");
    13. else out.println("NO");
    14. }
    15. }
    16. static long gcd(long a, long b) {
    17. return b == 0 ? a : gcd(b, a % b);
    18. }