ПАСКАЛЬ/ 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
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
Пожалуйста
Ответ дал:
0
"Да и глупо крутить цикл до n, если любое из пары чисел не может превыcить кубического корня из n" Действительно, мы же не учитываем, что 11^3 больше 1028, его банально не пустит в внешний цикл. А power(j,3)+power(i,3)<=n в внутреннем "нисколько" не сокращает количество шагов относительно вашего полного прохода во всем возможным значениям.
Похожие вопросы
2 года назад
2 года назад
9 лет назад
9 лет назад
9 лет назад