atcoder#ABC293F. [ABC293F] Zero or One

[ABC293F] Zero or One

题目描述

2 2 以上の整数 N N が与えられます。下記の条件を満たす 2 2 以上の整数 b b の個数を出力してください。

  • N N b b 進法で表記したとき、すべての桁について「その桁が 0 0 または 1 1 である」が成り立つ。

T T 個の独立なテストケースについて答えを求めてください。

なお、本問題の制約下において、上記の「条件を満たす 2 2 以上の整数 b b の個数」は有限であることが証明できます。

输入格式

入力は以下の形式で標準入力から与えられる。ここで、testi \mathrm{test}_i i i 番目のテストケースを表す。

T T test1 \mathrm{test}_1 test2 \mathrm{test}_2 \vdots testT \mathrm{test}_T

各テストケースは以下の形式で与えられる。

N N

输出格式

T T 行出力せよ。 i = 1, 2, , T i\ =\ 1,\ 2,\ \ldots,\ T について、i i 行目には i i 番目のテストケースに対する答えを出力せよ。

题目大意

TT 组数据,每组一个正整数 nn,保证 2n10182\leq n \leq 10^{18} ,对于每个 nn 求满足条件的 bb 的个数,使得 nnbb 进制表示只包含 0011

3
12
2
36
4
1
5

提示

制約

  • 1  T  1000 1\ \leq\ T\ \leq\ 1000
  • 2  N  1018 2\ \leq\ N\ \leq\ 10^{18}
  • 入力はすべて整数

Sample Explanation 1

1 1 番目のテストケースについて、問題文中の条件を満たす b b は、b = 2, 3, 11, 12 b\ =\ 2,\ 3,\ 11,\ 12 4 4 つです。 実際、N = 12 N\ =\ 12 2, 3, 11, 12 2,\ 3,\ 11,\ 12 進法で表すと、それぞれ 1100, 110, 11, 10 1100,\ 110,\ 11,\ 10 となります。