编程题
### 问题描述
诺伊和星迪是两个科幻世界的探险家,他们在一次探险中发现了一台神秘的密码机器。这台机器可以接收两个二进制字符串 $A$ 和 $B$,并且可以对字符串 $A$ 进行一种特殊的操作:
1. 选择一个素数 $X$。
2. 选取长度为 $X$ 的 $A$ 的任意子串,并翻转这个子串。
经过任意次(包括零次)的操作后,如果字符串 $A$ 可以变为字符串 $B$,那么密码机器就会开启,否则就会保持关闭。
诺伊和星迪想要开启这台机器,他们需要你的帮助。你能帮他们解决这个问题吗?
### 输入格式
输入的第一行将包含一个整数 $T$,表示测试用例的数量。
每个测试用例包含多行:
- 第一行包含一个整数 $N$ —— 字符串 $A$ 和 $B$ 的长度。
- 第二行包含二进制字符串 $A$。
- 第三行包含二进制字符串 $B$。
数据范围保证:
- $1 \leq T \leq 100$。
- $1 \leq N \leq 10^5$。
- $A_i$ 和 $B_i$ 只包含 $0$ 和 $1$。
- 所有测试用例中 $N$ 的总和不超过 $10^5$。
### 输出格式
对于每个测试用例,如果你可以通过任意次的操作使字符串 $A$ 变为字符串 $B$,则在新的一行中输出 "YES",否则输出 "NO"。
### 样例输入
```text
4
2
00
00
4
1001
0111
5
11000
10010
5
11000
11010
```
### 样例输出
```text
YES
NO
YES
NO
```
### 说明
对于第一个测试用例:两个字符串已经相等,因此我们不需要进行任何操作。
对于第二个测试用例:我们无法通过任意次的操作使字符串 $A$ 变为字符串 $B$。
对于第三个测试用例:选择 $X=3$ 并翻转子串 $A[2,4]=100$,这样字符串 $A$ 就变成了 $10010$,这正是我们想要的字符串 $B$。
对于第四个测试用例:我们无法通过任意次的操作使字符串 $A$ 变为字符串 $B$。