#4499. 回文立方数 (cube.cpp)

回文立方数 (cube.cpp)

题目描述

给定一个正整数 NN

找到不超过 NN 的最大回文立方数。

这里,正整数 KK被定义为回文立方数,当且仅当它满足以下两个条件:

  1. 存在一个正整数xx,使得x3=kx^3=k
  2. KK 的十进制表示形式去除前导零后是一个回文数。更具体地说,如果 KK 被表示为K=i=0L1Ai10iK = \sum_{i=0}^{L-1} A_i \cdot 10^i,其中AiA_i是介于 0 和 9 之间的整数,LLKK的位数,那么对于所有i=0,1,,L1i=0,1,…,L−1,都有Ai=AL1iA_i = A_{L−1−i}

输入格式

一行一个整数 N1018N \leq 10^{18}

输出格式

一行一个整数,表示答案。

样例输入 1

345
343
123456789012345
1334996994331

数据范围与约定

对于 20%20\% 的数据,保证 1N1031 \leq N \leq 10^3

对于 50%50\% 的数据,保证 1N10151 \leq N \leq 10^{15}

对于 100%100\% 的数据,保证 1N10181 \leq N \leq 10^{18}