P6052 [RC-02] yltx 数对

题目背景

yltx 又双叒叕出自己不会做的题了……

题目描述

yltx 定义若一个**素数**数对 $(x,y)$ 满足 $x\times y-3\times (x-y)$ 是素数,则称其为一个 yltx 数对。 他给了你 $T$ 对 $(x,y)$,请你检查他们是否为 yltx 数对。 数据以种子$(x_0,y_0)$的形式给出。 执行 $T$ 次 $x_0\leftarrow (7x_0+13)\ \mathrm{xor}\ (x_0\div 13-7)$,第 $i$ 次执行得到的数先取模 $10^4$、加上 $10^4$、取模 $10^4$,再加 $1$,就得到了第 $i$ 组数据的 $x$。这里的除法就是整除,把 $x_0$ 视作 32 位有符号整数。 用同样的方法得到 $y$。 数据生成模板: ```cpp #include using namespace std; int T,x_0,y_0; int main() { scanf("%d%d%d",&T,&x_0,&y_0); while(T--){ x_0=((7*x_0+13)^(x_0/13-7)); y_0=((7*y_0+13)^(y_0/13-7)); int x=(x_0%10000+10000)%10000+1,y=(y_0%10000+10000)%10000+1; //x,y即为一组(x,y)。 } return 0; } ```

输入格式

第一行三个整数 $T,x_0,y_0$。

输出格式

$1$行,输出有几对数是 yltx 数对。

说明/提示

各测试点数据范围如下: | 测试点 | T | Subtask | | :---: | :---: | :---: | | 1 | $\le10$ | 1 | | 2 | $\le20$ | 1 | | 3 | $\le50$ | 1 | | 4 | $\le100$ | 1 | | 5 | $\le500$ | 1 | | 6 | $\le1000$ | 1 | | 7 | $\le5000$ | 2 | | 8 | $\le10^4$ | 2 | | 9 | $\le5\times10^4$ | 2 | | 10 | $\le4\times10^5$ | 2 | | 11 | $\le10^6$ | 2 | | 12 | $\le5\times10^6$ | 2 | | 13 | $\le4\times10^7$ | 3 | | 14 | $\le4\times10^7$ | 3 | | 15 | $\le4\times10^7$ | 3 | | 16 | $\le4\times10^7$ | 3 | | 17 | $\le4\times10^7$ | 3 | | 18 | $\le4\times10^7$ | 3 | | 19 | $\le4\times10^7$ | 3 | | 20 | $\le4\times10^7$ | 3 | 各Subtask捆绑测试。 本题开放数据下载,但希望您能用数据做正确的事。