#G726031. [GESP202603 七级 C++] 26. 拆分

提交0 通过0
通过率0%
时间限制1000ms
内存限制512MiB
    ID: 539 传统题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 普及 上传者: 标签>编程题c++分类讨论动态规划 DP数学贪心动态规划最优值

题目描述

题目描述

小 A 想将正整数 nn 拆分成若干个正整数之和,并最大化拆分后的正整数之积。小 A 希望你帮他计算出拆分后正整数之积的最大值。由于答案可能很大,你只需要求出答案对 10910^9 取模的结果。

形式化地,nn 的拆分是满足 a1++ak=na_1+\cdots+a_k=n 的若干个正整数 a1,,aka_1,\dots,a_k,其中 1kn1\leq k\leq n。你需要求出 nn 的所有拆分中 a1××aka_1\times \cdots\times a_k 的最大值对 10910^9 取模的结果。

输入格式

第一行,一个正整数 tt,表示数据组数。

对于每组数据:一行,一个整数 nn,表示给定的正整数。

输出格式

对于每组数据:输出一行,一个整数,表示 nn 拆分后正整数之积的最大值对 10910^9 取模的结果。

测试样例

3
5
8
100
6
18
755407364

对于 40%40\% 的测试点,保证 n50n\leq 50

对于所有测试点,保证 1t1041\leq t\leq 10^41n1061\leq n\leq 10^6