#AT2506. F - Zero or One

F - Zero or One

当前没有测试数据。

F - 零或一

得分:500分

问题描述

给定一个不小于2的整数$N$,找出不小于2的整数$b$的数量,使得:

  • 当$N$用$b$为底表示时,每一位都是0或1。

计算$T$个独立的测试用例的答案。

可以证明,在问题的约束条件下,存在一有限数量的满足要求的不小于2的整数$b$。

约束条件

  • $1 \leq T \leq 1000$
  • $2 \leq N \leq 10^{18}$
  • 输入中的所有值都是整数。

输入

从标准输入中以以下格式给出输入,其中$\mathrm{test}_i$表示第$i$个测试用例:

TT

test1\mathrm{test}_1

test2\mathrm{test}_2

\vdots

testT\mathrm{test}_T

每个测试用例以以下格式给出:

``` $N$ ```

输出

输出$T$行。 对于$i=1,2,\ldots,T$,第$i$行应该包含第$i$个测试用例的答案。


3
12
2
36
4
1
5

对于第一个测试用例,有四个$b$满足问题描述中的条件:$b=2,3,11,12$。 确实,当$N=12$时,在底为2, 3, 11和12的情况下,它分别变为$1100, 110, 11$和$10$。