Помощь - Поиск - Пользователи - Календарь
Полная версия: Нахождение минимального натурального числа
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Juhn
Задали написать программу в паскале на десяточку
Условие такое: найти минимальное натуральное число N, которое можно изобразить в виде суммы кубов двух натуральных чисел в двух вариантах. (N=a(3)+b(3)=c(3)+d(3)). (3) - в третей степени.

Честно говоря не знаю как написать эту прогу, а десять получить очень хочется
Очень надеюсь на вашу помощь.
andriano
Помощь подразумеват, что ТЫ что-то делаешь, а тебе советуют, но совсем не то, что КТО-ТО будет делать вместо тебя.
Juhn
Ну поэтому я и прошу помощи, так как не знаю как её сделать :/
andriano
Представь, что тебе ее надо сделать просто на листе бумаги. С чего бы ты начал?
Feagor
Грубым перебором делай, ты начни, тебе помогут.
Juhn
program 12345;
var
n:integer;
begin
........
......
......
....
..
readln;
end.

И это всё что я знаю знаю sad.gif
А какой нужен код, вот для меня задачка :/
мисс_граффити
я бы еще переменных добавила...
а так - как уже сказали - перебором.
andriano
Цитата(Juhn @ 23.12.2007 22:04) *

И это всё что я знаю знаю sad.gif
А какой нужен код, вот для меня задачка :/

Еще раз: начинать нужно не с кода, а со словесного описания.
Lapp
Самый примитивный перебор можно организовать так..

Одно число (это будет a) увеличиваешь в цикле от 1 до получения ответа.
Внутри организуешь цикл по b от 1 до a.
Считаешь сумму их кубов (s).
Теперь делаешь цикл по c от 1 до целой части кубического корня из s, исключая а и b.
В этом цикле вычисляешь t=s-c^3
Если t есть куб целого числа (d^3), то задача решена.
Feagor
Смотрюю никто не хочет помогать с кодом lol.gif
Ну ладно, так как у меня есть немного свободного времени...

Добавлено через 11 мин.
uses crt;
var n,a,b,c,d:integer;
label 1;
begin
a:=1;
b:=1;
c:=1;
n:=1;
for n:=1 to 100 do
for a:=1 to 100 do
for b:=1 to 100 do
for c:=1 to 100 do
for d:=1 to 100 do if (n=a*a*a+b*b*b) and (n=c*c*c+d*d*d) then {goto 1;}writeln(n,' ',a,' ',b,' ',c,' ',d);
{1:writeln(n,' ',a,' ',b,' ',c,' ',d);}
end.



Добавлено через 21 мин.
проверял щас с условиям что все переменные - разные, комп чуть не повеслися, после 15 минут работы компа решил, что хватит, щелкнув ctrl+break lol.gif lol.gif lol.gif
Michael_Rybak
Feagor, твое решение неоптимально. На порядок менее оптимально, чем описанное Lapp'ом. Цикл для n не нужен.
Feagor
я понимаю, но парню видно нужно хоть что-то написать, а ему одни советы дают. а ваще согласен что у lapp'а на порядок оптимальнее
Michael_Rybak
Цитата
я понимаю, но парню видно нужно хоть что-то написать, а ему одни советы дают.


Вот именно. Так и должно быть. Ему нужно написать - ему советуют как, и он пишет.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.