|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.08.2012, 17:40 | #1 |
Пользователь
Регистрация: 18.07.2012
Сообщений: 10
|
Определить, представимо ли число в виде суммы трех квадратов
Пытаюсь прописать прогу, определяющую, представимо ли некое натуральное число n в виде суммы трёх квадратов натуральных чисел m, k и p.
Получилось такое: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Math; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; n, m, k, p : integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin n:=StrToInt(Edit1.Text); if n=Power(m, 2)+Power(k, 2)+Power(p, 2) then Label2.Caption:='Представимо' else Label2.Caption:='Не представимо' end; end. При проверке выдает всегда "не представимо". Где ошибка? |
15.08.2012, 18:08 | #2 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
а как определяются m, k и p?
Чему они равны? |
15.08.2012, 18:12 | #3 |
Пользователь
Регистрация: 18.07.2012
Сообщений: 10
|
Это любые натуральные числа. К примеру, 29 представимо как 2^2+3^2+4^2, а 13 не представимо. Суть в том, чтобы ответить, способно введенное число быть разложенным таким образом или нет.
|
15.08.2012, 18:22 | #4 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
В программе вашей как определяются их значения?
|
15.08.2012, 18:29 | #5 |
Пользователь
Регистрация: 18.07.2012
Сообщений: 10
|
Эээ,
n, m, k, p : integer; просто как целые числа. Пардон, но я плаваю по азам, и если бы знал, как их толком обозначить, проблемы бы не существовало. |
15.08.2012, 18:38 | #6 | |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Ваша задача
Цитата:
Я пытаюсь сказать, что в вашей программе нет кода, который решает эту задачу. Должно выть что-то типа Код:
http://mathworld.wolfram.com/SumofSquaresFunction.html Последний раз редактировалось Sibedir; 15.08.2012 в 18:45. |
|
15.08.2012, 18:52 | #7 |
Пользователь
Регистрация: 18.07.2012
Сообщений: 10
|
Спасибо.
То есть я сначала обозначаю Label2.Caption:='Не представимо', а потом, если n отвечает заявленным требованиям, заменяю значение Label2 на "Представимо", так? И еще, если m, k и p от 1 до 1000, значит, результат будет ограничен? Нельзя ли как-нибудь объявить натуральное число, не имеющее верхней границы? |
15.08.2012, 18:54 | #8 | |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Да я вам не решение дал, а
Цитата:
При решении методом перебора без верхней границы не обойтись. На то он и метод перебора. Но границей может служить, например, само число n или модуль корня из n : ) Последний раз редактировалось Sibedir; 15.08.2012 в 18:58. |
|
15.08.2012, 19:00 | #9 |
Пользователь
Регистрация: 18.07.2012
Сообщений: 10
|
Прекрасно понимаю, что не решение, и благодарен за указание на ошибку. Но это 4я попытка написать программу самостоятельно, поэтому данное в начале темы решение - все, что я смог из себя выжать.
Еще раз спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Циклы (разложить число в ряд суммы квадратов) | Horatii | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 08.10.2011 11:57 |
Можно ли число N представить в виде сумы двух квадратов натуральных чисел? | Dima170792 | Помощь студентам | 2 | 24.06.2011 08:53 |
число в виде суммы квадратов натуральных чисел | gambuz | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 04.10.2010 11:07 |
Определить представимо ли число содержащиеся в ячейке 0200 в в виде суммы 2х простых чисел. | Lenusy | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 06.10.2009 08:26 |
Дано натуральное число n. Можно ли представить его в виде суммы двух квадратов натуральных чисел? | Сеня | Помощь студентам | 3 | 29.01.2009 01:17 |