#P6052. [RC-02] yltx 数对

[RC-02] yltx 数对

题目背景

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

题目描述

yltx 定义若一个素数数对 (x,y)(x,y) 满足 x×y3×(xy)x\times y-3\times (x-y) 是素数,则称其为一个 yltx 数对。

他给了你 TT(x,y)(x,y),请你检查他们是否为 yltx 数对。

数据以种子(x0,y0)(x_0,y_0)的形式给出。

执行 TT 次 $x_0\leftarrow (7x_0+13)\ \mathrm{xor}\ (x_0\div 13-7)$,第 ii 次执行得到的数先取模 10410^4、加上 10410^4、取模 10410^4,再加 11,就得到了第 ii 组数据的 xx。这里的除法就是整除,把 x0x_0 视作 32 位有符号整数。

用同样的方法得到 yy

数据生成模板:

#include<bits/stdc++.h>
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,x0,y0T,x_0,y_0

输出格式

11行,输出有几对数是 yltx 数对。

100000 1 2
321

提示

各测试点数据范围如下:

测试点 T Subtask
1 10\le10 1
2 20\le20
3 50\le50
4 100\le100
5 500\le500
6 1000\le1000
7 5000\le5000 2
8 104\le10^4
9 5×104\le5\times10^4
10 4×105\le4\times10^5
11 106\le10^6
12 5×106\le5\times10^6
13 4×107\le4\times10^7 3
14
15
16
17
18
19
20

各Subtask捆绑测试。

本题开放数据下载,但希望您能用数据做正确的事。