- 1000ms
- 262144K
一天蒜头君猜想,是不是所有的偶数(除了 22),都可以用两个质数相加得到呢?于是聪明的蒜头君就找你来验证了。
输入格式
第一行输入一个整数 tt 表示测试组数。
接下来 tt 行,每行一个整数 nn。
输出格式
输出两个整数,因为答案可能有多个,所有要求输出的这两个整数是所有答案中字典序最小的。
数据范围
对于 30\%30% 的数据 1 \le t \le 10^31≤t≤103。
对于 60\%60% 的数据 1 \le t \le 10^51≤t≤105。
对于 100\%100% 的数据 1 \le t \le 10^6, 4 \le n \le 10^61≤t≤106,4≤n≤106,nn 为偶数。
样例输入复制
3 4 8 20
样例输出复制
2 2 3 5 3 17
题解:
利用素数筛法,直接暴力。看题目的意思,估计每个偶数都能由两个质数相加得到。那你就让n从小到大减去每个质数,直到得到的差也是质数就行。
这道题感觉数据有点水。然后自己TL地也有点亏,这么长时间没TL,都忘了cin、cout比较慢了。然后用map计数也会超时,好多次了,有点无语。
#include <iostream>
#include <algorithm>
#include <cstring>
#include <m