CF1646C.Factorials and Powers of Two

传统题 时间 2000 ms 内存 256 MiB 8 尝试 3 已通过 1 标签

Factorials and Powers of Two

题目描述

如果一个数是 22 的幂或阶乘,则称其为“强大数”。换句话说,如果存在非负整数 dd,使得 m=2dm=2^dm=d!m=d!,那么数 mm 就是强大数(其中 d!=12dd! = 1 \cdot 2 \cdot \ldots \cdot d,特别地,0!=10! = 1)。例如,114466 都是强大数,因为 1=1!1=1!4=224=2^26=3!6=3!,但 7710101818 不是强大数。

给定一个正整数 nn,请你求出最小的正整数 kk,使得 nn 能表示为 kk 个互不相同的强大数之和。如果不存在这样的 kk,请输出 1-1

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例的数量。

接下来每组测试用例仅一行,包含一个整数 nn1n10121 \le n \le 10^{12})。

输出格式

对于每组测试用例,输出一行答案。

如果 nn 不能表示为若干个互不相同的强大数之和,输出 1-1

否则,输出一个正整数,表示最小可能的 kk

说明/提示

在第一个测试用例中,77 可以表示为 7=1+67=1+6,其中 1166 都是强大数。由于 77 不是强大数,所以最小的 kkk=2k=2

在第二个测试用例中,1111 可以表示为 11=1+4+611=1+4+6,且无法用两个或更少的强大数表示 1111

在第三个测试用例中,240240 可以表示为 240=24+32+64+120240=24+32+64+120。注意 240=120+120240=120+120 不是有效表示,因为强大数必须互不相同。

在第四个测试用例中,17179869184=23417179869184=2^{34},所以 1717986918417179869184 是强大数,最小的 kkk=1k=1

由 ChatGPT 4.1 翻译

样例

4
7
11
240
17179869184
2
3
4
1

在线编程 IDE

建议全屏模式获得最佳体验