решить на паскале! Известно, что любое натуральное число можно представить в виде суммы не более чем четырех квадратов натуральных чисел. Вася решил придумать аналогичное утверждение для кубов - он хочет узнать, сколько кубов достаточно для представления любого числа. Его первая рабочая гипотеза - восемь.
Выяснилось, что почти все чиcла, которые Вася смог придумать, представляются в виде суммы не более чем восьми кубов. Однако число 239, например, не допускает такого представления. Теперь Вася хочет найти какие-либо другие такие числа, а также, возможно, какую-либо закономерность в представлениях всех остальных чисел, чтобы выдвинуть гипотезу относительно вида всех чисел, которые не представляются в виде суммы восьми кубов.
Васе написать программу, которая проверяла бы, возможно ли представить данное натуральное число в виде суммы не более чем восьми кубов натуральных чисел, и если это возможно, то находила бы какое-либо такое представление.
Входные данные
Вводится натуральное число N <= 2*109.
Выходные данные
Требуется вывести не более восьми натуральных чисел, кубы которых в сумме дают N. Если искомого представления не существует, то в выходной файл необходимо вывести слово IMPOSSIBLE.
Примеры
входные данные
239
выходные данные
IMPOSSIBLE
входные данные
17
выходные данные
2 2 1
#include <iostream>
#include <ctime>
using namespace std;
int main() {
int D[10][10];
srand(time(NULL));
//Генерация и вывод массива
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
D[i][j] = rand() % (11) - 5;
printf("%3d", D[i][j]);
}
printf("\n");
}
printf("\n");
//Замена элементов и вывод матрицы
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (D[i][j] < 0) D[i][j] = 0;
if (D[i][j] > 0) D[i][j] = 1;
printf("%3d", D[i][j]);
}
printf("\n");
}
printf("\n");
//Вывод нижнего треугольника
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (j < i) printf("%3d", D[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}