#1203. 二进制小数的乘积

二进制小数的乘积

题目描述

如果某个正整数的十进制表示中每一位都只可能是 00 或 11,就称它为二进制小数(binary decimal)。例如 1 010 1111\,010\,111 是二进制小数,而 10 20110\,201 和 787 788787\,788 不是。

给定 nn,问能否把 nn 表示成若干个(可以重复)二进制小数的乘积。

输入格式

第一行包含一个整数 tt(1≤t≤5⋅1041 \leq t \leq 5 \cdot 10^4),表示数据组数。

每组数据只有一行,包含一个整数 nn(1≤n≤1051 \leq n \leq 10^5)。

输出格式

对每组数据,若 nn 能表示成若干二进制小数的乘积,输出 "YES"(不带引号),否则输出 "NO"(不带引号)。

大小写任意:yES、yes、Yes 都会被判定为正解。

说明

样例的前五组数据可以如下分解为二进制小数的乘积:

  • 121=11×11121 = 11 \times 11。
  • 1=11 = 1,本身就是一个二进制小数。
  • 14 641=11×11×11×1114\,641 = 11 \times 11 \times 11 \times 11。
  • 12 221=11×11×10112\,221 = 11 \times 11 \times 101。
  • 10 110=10 11010\,110 = 10\,110,本身就是一个二进制小数。

样例

11
121
1
14641
12221
10110
100000
99
112
2024
12421
1001
YES
YES
YES
YES
YES
YES
NO
NO
NO
NO
YES

来源

Codeforces Round 937 (Div. 4) D 题