CF1646C.Factorials and Powers of Two

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

A number is called powerful if it is a power of two or a factorial. In other words, the number mm is powerful if there exists a non-negative integer dd such that m=2dm=2^d or m=d!m=d! , where d!=12dd!=1\cdot 2\cdot \ldots \cdot d (in particular, 0!=10! = 1 ). For example 11 , 44 , and 66 are powerful numbers, because 1=1!1=1! , 4=224=2^2 , and 6=3!6=3! but 77 , 1010 , or 1818 are not.

You are given a positive integer nn . Find the minimum number kk such that nn can be represented as the sum of kk distinct powerful numbers, or say that there is no such kk .

输入格式

Each test contains multiple test cases. The first line contains the number of test cases tt ( 1t1001 \le t \le 100 ). Description of the test cases follows.

A test case consists of only one line, containing one integer nn ( 1n10121\le n\le 10^{12} ).

输出格式

For each test case print the answer on a separate line.

If nn can not be represented as the sum of distinct powerful numbers, print 1-1 .

Otherwise, print a single positive integer — the minimum possible value of kk .

输入输出样例

  • 输入#1

    4
    7
    11
    240
    17179869184

    输出#1

    2
    3
    4
    1

说明/提示

In the first test case, 77 can be represented as 7=1+67=1+6 , where 11 and 66 are powerful numbers. Because 77 is not a powerful number, we know that the minimum possible value of kk in this case is k=2k=2 .

In the second test case, a possible way to represent 1111 as the sum of three powerful numbers is 11=1+4+611=1+4+6 . We can show that there is no way to represent 1111 as the sum of two or less powerful numbers.

In the third test case, 240240 can be represented as 240=24+32+64+120240=24+32+64+120 . Observe that 240=120+120240=120+120 is not a valid representation, because the powerful numbers have to be distinct.

In the fourth test case, 17179869184=23417179869184=2^{34} , so 1717986918417179869184 is a powerful number and the minimum kk in this case is k=1k=1 .

首页