生成数字的方法
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
说明
输入文件: gen.in 输出文件: gen.out
时间限制: 1 Sec 内存限制: 256 MB
题目描述
小明想出了如下一种“生成数字的方法”:
步骤 1:初始状态设为 $ s=0 $,$ t=0 $。
步骤 2:将 $ t $ 的值乘以2,作为新的 $ t $ 值,即执行 $ t := t \times 2 $。
步骤 3:在心里抛一枚硬币。如果抛出正面,就给 $ t $ 的值加 $1$,作为新的 $ t $ 值,即执行 $ t := t+1 $。硬币是否抛出正面,可以根据需要自由决定。
步骤 4:将 $ t $ 的值加到 $ s $ 上,作为新的 $ s $ 值,即执行 $ s := s + t $。
步骤 5:在心里掷一个骰子。如果掷出的点数不是 $1$,就回到步骤 $ 2 $;如果掷出 $ 1$,就继续执行步骤 $6 $。骰子的点数,可以根据需要自由决定。
步骤 6:将此时 $ s $ 的值作为生成的数字输出,流程结束。
现在,给定一个整数 $ N $,请判定 $ N $ 是否能用上述“生成数字的方法”生成。若能生成,输出 YES;若不能生成,输出 NO。
输入格式
第一行一个整数 $T$ 表示测试数据的数量。
接下来 $T$ 行,每行一个整数 $N$。
输出格式
输出 $T$ 行,每个测试数据输出一行。如果 $ N $ 是否能用上述“生成数字的方法”生成。若能生成,输出 YES;若不能生成,输出 NO。
样例
2
10
12
YES
NO
样例说明 #1
10 = 1 + 3 + 6,第一次 ,第二次 ,第三次 。
数据范围
- 对于 30% 的数据,。
- 对于 40% 的数据,。
- 对于 100% 的数据,,。