CF1878F.Vasilije Loves Number Theory

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Vasilije is a smart student and his discrete mathematics teacher Sonja taught him number theory very well.

He gave Ognjen a positive integer nn .

Denote d(n)d(n) as the number of positive integer divisors of nn , and denote gcd(a,b)gcd(a, b) as the largest integer gg such that aa is divisible by gg and bb is divisible by gg .

After that, he gave Ognjen qq queries, and there are 22 types of queries.

  • 11 , xx — set nn to nxn \cdot x , and then answer the following question: does there exist a positive integer aa such that gcd(a,n)=1gcd(a, n) = 1 , and d(na)=nd(n \cdot a) = n ?
  • 22 — reset nn to its initial value (before any queries).

Note that nn does not get back to its initial value after the type 1 query.

Since Ognjen is afraid of number theory, Vasilije promised him that after each query, d(n)109d(n) \le 10^9 , however, even with that constraint, he still needs your help with this problem.

输入格式

The first line contains a positive integer tt , ( 1t1001 \le t \le 100 ) — the number of test cases.

The first line of each test case contains 22 integers, nn and qq ( 1n1061 \le n \le 10^{6} , 1q10001\le q \le 1000 ) — the number nn and the number of queries.

The following qq lines contain an integer kk ( 1k21 \le k \le 2 ), if k=1k=1 then there is another integer in this line xx ( 1x1061 \le x \le 10^6 ) — the description of the queries.

It is guaranteed that, for the given input, d(n)d(n) does not exceed 10910^9 at any point.

It is guaranteed that the sum of qq over all test cases doesn't exceed 10310^3 .

输出格式

For each type 1 query, you should output "YES" if there exist such positive integer aa that gcd(a,n)=1gcd(a, n) = 1 and d(na)=nd(n \cdot a)=n , and "NO" if he can't.

You can output the answer in any case (for example, the strings "yEs", "yes", "Yes", and "YES" will be recognized as a positive answer).

输入输出样例

  • 输入#1

    7
    1 5
    1 1
    1 2
    2
    1 8
    1 9
    20 4
    1 3
    2
    1 7
    1 12
    16 10
    1 6
    1 6
    1 10
    1 9
    1 1
    1 9
    1 7
    1 3
    1 2
    1 10
    9 1
    1 3
    8 1
    1 2
    8 3
    1 5
    1 8
    1 10
    11 5
    1 8
    1 2
    1 1
    1 3
    1 1

    输出#1

    YES
    YES
    YES
    YES
    
    YES
    NO
    YES
    
    YES
    NO
    YES
    YES
    YES
    NO
    YES
    NO
    YES
    YES
    
    NO
    
    NO
    
    YES
    NO
    NO
    
    YES
    NO
    NO
    NO
    NO

说明/提示

In the first test case, we initially have n=1n=1 .

After the first query: n=1n=1 , d(n)=1d(n)=1 , so by taking a=1a = 1 , d(na)=nd(n \cdot a) = n , and the answer to this query is "YES".

After the second query: n=2n=2 , d(n)=2d(n)=2 , we can, again, take a=1a = 1 , d(na)=nd(n \cdot a) = n , and the answer to this query is "YES".

After the third query n=1n=1 , and this is a type 22 query so we don't answer it.

After the fourth query: n=8n=8 , and by taking a=3a=3 , d(na)=d(24)=8=nd(n \cdot a) = d(24) = 8 = n , so the answer is "YES".

After the fifth query: n=72n=72 , now we can take a=637a=637 to get na=45864n \cdot a = 45864 , and d(na)=72=nd(n \cdot a) = 72 = n , so the answer is "YES".

In the second test case, we initially have n=20n=20 .

After the first query: n=60n=60 , and the answer is "YES".

After the second query: n=20n=20 , this is a type 22 query, so we don't answer it.

After the third query: n=140n=140 , and it can be proven that no matter which positive integer aa we take, d(na)d(n \cdot a) will never be equal to nn , so the answer to this query is "NO".

After the fourth query: n=1680n=1680 . It can be proven that there exists a positive integer aa , such that d(na)=nd(n \cdot a) = n , so the answer is "YES".

首页