#P16138. 位的方程(popcount)

位的方程(popcount)

题目描述

给定一个正整数 aa,输出一个正整数 nn,使得 a×popcount(n)=na\times\operatorname{popcount}(n)=n,其中 popcount\operatorname{popcount} 表示二进制表示中 11 的个数,如果不存在,输出 1-1,如果答案不唯一,可以输出任意一个。

你需要解决 TT 个这样的问题。

输入格式

第一行输入一个正整数 TT,表示问题的个数。

i+1 (1iT)i+1\ (1\le i\le T) 行输入一个正整数 aa,表示第 ii 个问题。

输出格式

输出 TT 行,第 i (1iT)i\ (1\le i\le T) 行输出一个整数表示第 ii 个问题的答案。

3
5
27
26
10
81
-1

提示

样例解释

对于第 11 个问题,5×popcount(10)=5×2=105\times\operatorname{popcount}(10)=5\times 2=10

对于第 22 个问题,27×popcount(81)=27×3=8127\times\operatorname{popcount}(81)=27\times 3=81,另外 108108 也是一个答案。

对于第 33 个问题,可以证明不存在正整数 nn 使得 26×popcount(n)=n26\times\operatorname{popcount}(n)=n

数据范围

对于所有测试数据,保证:

  • 1T1051\le T\le 10^5
  • 1a10161\le a\le 10^{16}

::cute-table{tuack} |测试点编号|aa\le|TT\le|特殊性质| |:-:|:-:|:-:|:-:| |11|1010|1010|无| |22|40004000|10001000|保证有解| |3,43,4|^|^|无| |55|101610^{16}|5454|aa22 的幂| |6106\sim 10|^|10510^5|无|