SP27269 CUBNUM - Cube Numbers

题目描述

对于任意正整数 $n$,它可以表示为若干个正整数的立方和,即 $n = a_1^3 + a_2^3 + \dots + a_m^3$。你的任务是找出能凑出 $n$ 的最少立方数个数,即求出满足条件的最小的 $m$。 例如: * $n = 5$,$5 = 1^3 + 1^3 + 1^3 + 1^3 + 1^3$($m = 5$) * $n = 8$,$8 = 2^3$($m = 1$) * $n = 35$,$35 = 2^3 + 3^3$($m = 2$) 注:原题作者目前的最佳运行时间为 0.05 秒。Java 代码也可以通过。

输入格式

输入包含多组测试数据,以换行符分隔。每组测试数据包含一个正整数 $n$($1 \le n \le 10^5$)。读取输入直到文件结束(EOF)。 保证每个输入文件中的测试数据总数小于 $10^5$。 注:C++ 用户可以使用 `while(scanf("%d",&n)!=EOF)` 来读取输入直到文件结束。 警告:本题输入输出数据量较大,部分语言请注意优化 I/O 操作。

输出格式

对于每组测试数据,打印 `Case #X: M`,其中 $X$ 为测试用例的编号($1 \le X \le 10^5$),$M$ 为凑成整数 $n$ 所需的最少立方数个数。输出的行尾不能有空格或其他空字符。每组测试数据的输出后必须换行。

说明/提示

由 Gemini 3.1 Pro 翻译