Problem Description
聚光灯突然打在舞台角落,那个常年穿着格子衫的程序员突然清了清嗓子:"咳咳,本世纪最憋屈配角奖得主——1e9+7同学!你每天帮别人防溢出防爆int,自己却连个专属题目都没有。今天我们要给你定制个逆天改命的舞台!"
定义一个类别,称为 “109+7类”。假设有一堆编号依次为 1,2,3,⋯,p 的小球,其中正整数 p表示小球的总数量。
对于这 p 个小球中的每一个,我们设其编号为 i(1≤i≤p),计算 ⌊i109+7⌋ 的值,其中 ⌊x⌋ 表示对 x 向下取整,也就是不超过 x 的最大整数。
根据上述计算结果,将所有满足 $\left\lfloor \frac{10^9 + 7}{j} \right\rfloor = \left\lfloor \frac{10^9 + 7}{k} \right\rfloor$ 的正整数 j 和 k(1≤j,k≤p)所对应的小球归为同一类。也就是说,编号为 j 和 k 的小球,如果计算 ⌊j109+7⌋ 和 ⌊k109+7⌋ 的结果相同,那么这两个小球就属于同一类。
现在,对于输入的正整数 p(1≤p≤109+7),需要计算出所有分类的总数,然后对所有分类总个数进行异或运算(采用异或运算的目的是为了避免输出数量过多,从而防止在某些编程语言中出现超时的情况)。
注意,答案是所有分类总个数的异或,不是 mod 109+7,今天 109+7 可是主角!
第一行输入一个整数 T (1≤T≤500)表示测试用例的数量
第二行T个整数 p(1≤p≤109+7),表示小球的总数量。
输出T行整数,表示每个测试用例所有分类总个数的异或结果。
Sample
输入 #1
4
3
4
9
16
输出 #1
1
0
1
0
Hint
令n=109+7
⌊1n⌋=1000000007
⌊2n⌋=500000003
⌊3n⌋=333333335
⌊4n⌋=250000001
测试用例1:有三类 [1000000007,500000003,333333335] ,每类有一个,异或结果 1XOR1XOR1=1
测试用例2:有四类 [1000000007,500000003,333333335,250000001] ,每类有一个,异或结果 $1 \, \mathrm{XOR} \,1 \, \mathrm{XOR} \, 1 \, \mathrm{XOR} \, 1 =0$