Предмет: Информатика, автор: МишкаМашки

ПАСКАЛЬ/ 9 КЛАСС
Представьте данное число n в виде суммы двух кубов.

Входные данные
Программа получает на вход одно натуральное число n(n <= 1028).

Выходные данные
Программа должна вывести 2 целых неотрицательных числа, сумма кубов которых равна n. Если это невозможно, выведите строку impossible.

Ответы

Автор ответа: Аноним
0
var
  n,i,j:integer;
  fexit:boolean;
begin
  Read(n);
  fexit:=false;
  for i:=1 to 10 do begin
    for j:=1 to 10 do
      if i*i*i+j*j*j=n then begin fexit:=true; break end;
    if fexit then break
    end;
  if fexit then Writeln(i,' ',j)
  else Writeln('impossible')
end.

Пример выполнения
637
5 8
Автор ответа: Аноним
0
Пожалуйста
Автор ответа: Gleb1Kosyrev
0
"Да и глупо крутить цикл до n, если любое из пары чисел не может превыcить кубического корня из n" Действительно, мы же не учитываем, что 11^3 больше 1028, его банально не пустит в внешний цикл. А power(j,3)+power(i,3)<=n в внутреннем "нисколько" не сокращает количество шагов относительно вашего полного прохода во всем возможным значениям.
Похожие вопросы
Предмет: Литература, автор: romanikolchuk
Предмет: Алгебра, автор: zhsh3