#HK4313. 「ROIR 2023 Day1」斐波那契乘积

「ROIR 2023 Day1」斐波那契乘积

题目描述

译自 ROI Regional 2023 Day1 T2. Произведение Фибоначчи

我们知道,斐波那契数列定义如下:F0=1,F1=1,Fn=Fn2+Fn1F_{0}=1, F_{1}=1, F_{n}=F_{n-2}+F_{n-1}。斐波那契数列的前几项是:1,1,2,3,5,8,13,21,34,1, 1, 2, 3, 5, 8, 13, 21, 34, \ldots

给定一个自然数 nn。需要计算有多少种方法可以将其表示为多个大于 11 的斐波那契数的乘积。

输入格式

输入包含多组数据。第一行包含一个整数 tt (1t50)(1 \le t \le 50),表示输入数据组数。

接下来的 tt 行中,每行包含一个整数 nn (2n1018)(2 \leq n \leq 10^{18})

输出格式

对于每组输入数据,输出一个整数,表示表示方法的数量。

5
2
7
8
40
64
1
0
2
2
3

在样例中:

  • 数字 22 只能表示为 2=22=2
  • 数字 77 不能表示为斐波那契数的乘积;
  • 数字 88 有两种表示方法:8=2228=2 \cdot 2 \cdot 28=88=8
  • 数字 4040 有两种表示方法:40=222540=2 \cdot 2 \cdot 2 \cdot 540=5840=5 \cdot 8

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
11 1515 2n1002 \leq n \leq 100
22 1717 2n1052 \leq n \leq 10^5 11
33 99 n=2kn=2^k 对于某个 kk
44 3838 2n1092 \leq n \leq 10^9 1,21,2
55 2121 2n10182 \leq n \leq 10^{18} 141\sim 4