Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2012, 14:13   #1
rokss
 
Регистрация: 04.03.2012
Сообщений: 3
По умолчанию Сумма трех кубов.

Определить, можно ли представить заданное натуральное число, как сумму трех кубов каких-нибудь трех натуральных чисел.


Нужен другой вид программы, которая будет работать быстрее с большими числами.

Код:
program z47;

uses crt;
var i,j,l,m:longint;
begin
clrscr;
write('VVedite chislo:');readln(m);
for i:=1 to round(sqrt(m))+1 do
for j:=1 to round(sqrt(m))+1 do
for l:=1 to round(sqrt(m))+1 do
if i*i*i+j*j*j+l*l*l=m then begin
write(Chisla: ',i,' è ',j,' è ',l);
readln;halt;
end;
write('nelzia');
readln;
end.

Последний раз редактировалось ACE Valery; 27.04.2012 в 14:32.
rokss вне форума Ответить с цитированием
Старый 27.04.2012, 14:39   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

1 2 3
2 1 3
2 3 1 это все одни и те же числа
будем искать группу Упорядоченную по возрастанию 1 2 3

Код:
for i:=1 to round(sqrt(m))+1 do
for j:=i to round(sqrt(m))+1 do 
for l:=j to round(sqrt(m))+1 do
улучшение второе
Код:
mq:=round(sqrt(m)+1; //считаем один раз потом просто используем

for i:=1 to mq do
for j:=i to mq do 
for l:=j to mq do
улучшение третье. только на словах кода писать не буду.
все что можно вычислить вне какого-то цикла должно быть там (вне цикла) и вычислено. и сохранено для последующих действий внутри цикла (-ов).

к этому относится вычисления кубов (произведения) и и даже частичные суммы этих самых кубов.

З.Ы. второе улучшение относится к этому же типу
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 27.04.2012 в 14:49.
evg_m вне форума Ответить с цитированием
Старый 27.04.2012, 18:31   #3
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Улучшение N+1-е:
Вместо трех циклов достаточно использовать два - внутри второго проверяется, является ли остаток m-i^3-j^3 кубом целого числа.

Улучшение N+2-е:
Везде вместо sqrt нужно использовать корень кубический.

Последний раз редактировалось s-andriano; 27.04.2012 в 18:34.
s-andriano вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычесление суммы кубов londoncold Помощь студентам 2 21.12.2011 20:22
Сумма трех наименьших элементов диапазона Gerzs Microsoft Office Excel 1 08.11.2010 19:51
Сумма трех asd48 Общие вопросы C/C++ 11 21.04.2009 20:38
Вычислить произведение P кубов трех чисел a, b и c, если их сумма меньше нуля, произведение P модулей NoUserName Помощь студентам 3 01.03.2009 18:10
Одномерный массив. Сумма кубов Xeon332 Помощь студентам 7 12.01.2008 21:47