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捆绑测试。
本题开放数据下载,但希望您能用数据做正确的事。