
ПАСКАЛЬ/ 9 КЛАСС Представьте данное число n в виде суммы двух кубов. Входные данные Программа
получает на вход одно натуральное число n(n <= 1028). Выходные данные Программа должна вывести 2 целых неотрицательных числа, сумма кубов которых равна n. Если это невозможно, выведите строку impossible.

Ответы на вопрос

Var
n,i,j,resi,resj,flag:integer;
begin
flag:=0;
i:=1;
readln(n);
while power(i,3)<n do
begin
j:=1;
while power(j,3)+power(i,3)<=n do
begin
if power(j,3)+power(i,3)=n then
begin
flag:=1;
resi:=i;
resj:=j;
break;
end;
inc(j);
end;
if flag=1 then break;
inc(i);
end;
if flag=1 then writeln(resi,' ',resj,' ',resj,' ',resi) else writeln('impossible');
end.
Пример ввода:
1008 //2^3+10^3
Пример вывода:
2 10 10 2



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` в виде суммы двух кубов. Если такое представление невозможно, то нужно вывести строку "impossible".
Входные данные
Программа получает на вход одно натуральное число `n` (n <= 1028).
Выходные данные
Программа должна вывести 2 целых неотрицательных числа, сумма кубов которых равна `n`. Если такое представление невозможно, то нужно вывести строку "impossible".
---
Решение
Для решения этой задачи мы можем перебрать все возможные пары целых чисел (a, b), где a и b могут быть равными нулю или положительными числами, и проверять, равна ли сумма кубов a^3 + b^3 заданному числу n.
Для реализации алгоритма нам потребуется использовать два цикла: один для перебора всех возможных значений a, и второй для перебора всех возможных значений b. Внутри второго цикла мы будем проверять, равна ли сумма кубов a^3 + b^3 заданному числу n.
Вот пример реализации данного алгоритма на языке Pascal:
```pascal program SumOfCubes; var n, a, b: integer; found: boolean; begin found := False; readln(n);
for a := 0 to Trunc(Power(n, 1/3)) do begin for b := 0 to Trunc(Power(n, 1/3)) do begin if (Power(a, 3) + Power(b, 3)) = n then begin writeln(a, ' ', b); found := True; break; end; end; if found then break; end;
if not found then writeln('impossible'); end. ```
Эта программа будет перебирать все возможные значения a и b до корня третьей степени из числа n и проверять, равна ли их сумма кубам числа n. Если такая пара найдена, то она будет выведена на экран. Если ни одна пара не найдена, будет выведена строка "impossible".
Надеюсь


Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili