Олимпиадный тренинг

Задача . C. Сумма кубов


Вам дано целое положительное число \(x\). Проверьте, представимо ли число \(x\) в виде суммы кубов двух целых положительных чисел.

Формально, вам нужно проверить, существует ли два целых числа \(a\) и \(b\) (\(1 \le a, b\)), таких что \(a^3+b^3=x\).

Например, если \(x = 35\), то подходят числа \(a=2\) и \(b=3\) (\(2^3+3^3=8+27=35\)). Если же \(x=4\), то ни одна пара чисел \(a\) и \(b\) не подходит.

Входные данные

В первой строке находится одно целое число \(t\) (\(1 \le t \le 100\)) — количество наборов входных данных. Далее следуют \(t\) наборов входных данных.

Каждый набор входных данных состоит из одного целого положительного числа \(x\) (\(1 \le x \le 10^{12}\)).

Обратите внимание, что числа в некоторых наборах входных данных не помещаются в \(32\)-битный целочисленный тип, поэтому вы должны использовать как минимум \(64\)-битный целочисленный тип вашего языка программирования.

Выходные данные

Для каждого набора входных данных в отдельной строке выведите:

  • «YES», если число \(x\) представимо в виде суммы кубов двух целых положительных чисел.
  • «NO» в противном случае.

Вы можете выводить «YES» и «NO» в любом регистре (например, строки yEs, yes, Yes и YES будут распознаны как положительный ответ).

Примечание

Число \(1\) не представимо в виде суммы двух кубов.

Число \(2\) представимо в виде \(1^3+1^3\).

Число \(4\) не представимо в виде суммы двух кубов.

Число \(34\) не представимо в виде суммы двух кубов.

Число \(35\) представимо в виде \(2^3+3^3\).

Число \(16\) представимо в виде \(2^3+2^3\).

Число \(703657519796\) представимо в виде \(5779^3+7993^3\).


Примеры
Входные данныеВыходные данные
1 7
1
2
4
34
35
16
703657519796
NO
YES
NO
NO
YES
YES
YES

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя