Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Можно ли заданное натур. число М представить в виде суммы 2-х ква   Найти похожие ветки 

 
Опять я   (2012-09-09 17:30) [0]

Можно ли заданное натур. число М представить в виде суммы 2-х квадратов натуральных чисел. Например 25=3^2+4^2?

Задача детская, но я не могу понять.


 
Юрий Зотов ©   (2012-09-09 17:56) [1]

3, 4, 5, 6, 7...


 
Опять я   (2012-09-09 17:57) [2]

Помогите! Подтолкните к решению!


 
Юрий Зотов ©   (2012-09-09 17:57) [3]

Правда, 4 = 2^2 + 0^2, поэтому 4 из этого ряда надо убрать.


 
Опять я   (2012-09-09 18:04) [4]

Вот получаем мы число 665 и что с ним делать?


 
Юрий Зотов ©   (2012-09-09 18:14) [5]


> Опять я   (09.09.12 17:57) [2]
> Помогите! Подтолкните к решению!

Дык... пример показывает, что в общем случае решения нет. То есть, не любое число можно представить таким образом.

А проверка "в лоб" простая. Имеем: X^2 + Y^2 = M, причем M известно. Надо найти пару X и Y, либо убедиться, что такой пары не существует.

Объявляем X:integer и Y:extended. Делаем цикл по X от нуля до TRUNC(SQRT(M)). На каждом витке цикла вычисляем Y:
Y =  SQRT(M - X^2)
и проверяем Y на целочисленность. Если Y целое, то пара найдена, если цикл кончился - такой пары нет.


 
Pavia ©   (2012-09-09 18:15) [6]

function Foo(n:Integer):Boolean;
var i,j:Integer;
begin
result:=False;
for i:=1 to бесконечность do
for j:=1 to бесконечность do
 if i*i+j*j=n then result:=True;
end;


> Вот получаем мы число 665 и что с ним делать?

передать в процедуру.


 
Юрий Зотов ©   (2012-09-09 18:26) [7]

procedure TForm1.Button1Click(Sender: TObject);
var
 M, X: cardinal;
 Y: extended;
begin
 M := StrToInt(Edit1.Text);
 for X := 0 to Trunc(Sqrt(M)) do
 begin
   Y := Sqrt(M - X * X);
   if Y = Trunc(Y) then
   begin
     Caption := Format("%d^2 + %d^2 = %d", [X, Trunc(Y), M]);
     Exit
   end
 end;
 Caption := "Нет такой пары"
end;


 
Опять я   (2012-09-09 18:40) [8]

Спасибо, понятно.

Нам задают какие-то странные задачи,

Вот:

напечатать все цифры числа 3^512


 
Опять я   (2012-09-09 18:41) [9]

Понятно, такое число не может вместить не один тип!
Даже Int64 или как его там в Pascal.


 
Sha ©   (2012-09-09 18:51) [10]

> Опять я   (09.09.12 18:41) [9]

умножение в столбик проходят в начальной школе


 
Опять я   (2012-09-09 18:56) [11]

Я бы сделал:


  Result:= Power(3, 512);


Но это никуда не лезет.

В смысле столбиком?


 
Юрий Зотов ©   (2012-09-09 19:02) [12]

> напечатать все цифры числа 3^512
> Понятно, такое число не может вместить не один тип!

Значит, надо подумать и найти другой способ. Например, можно использовать то, что число должно 512 раз делиться на 3, после чего должна получиться 1. Ну и признак делимости на 3 тоже может пригодиться: число делится на 3 тогда и только тогда, когда сумма его цифр делится на 3. И т.п.


 
Inovet ©   (2012-09-09 19:03) [13]

> [11] Опять я   (09.09.12 18:56)
> В смысле столбиком?

Всмысле, что не надо весь результат хранить, могли задать и 3^2^32 — суть та же.


 
Юрий Зотов ©   (2012-09-09 19:12) [14]


> Опять я   (09.09.12 18:40) [8]
> Нам задают какие-то странные задачи,
> напечатать все цифры числа 3^512  

Не странные, очень хорошие задачи. Развивают алгоритмическое мышление, а оно программисту необходимо.


 
Pavia ©   (2012-09-09 19:12) [15]


> Понятно, такое число не может вместить не один тип!

Может. Называется массив.


 
Опять я   (2012-09-09 19:37) [16]


> Юрий Зотов ©   (09.09.12 19:12) [14]


Только не уходите! Пожалуйста! Вы мне очень нужны.


 
Опять я   (2012-09-09 19:39) [17]

Допустим дано число попроще: 2^5 = 32.

Зная число и степень - понятно как его получить.
Но не понятно что делать дальше!


procedure Proc;
var
 i  : LongWord;
 Res: LongWord;
begin
 Res:= 1;
 For i:= 1 to 5 do
   Res:= Res * 2;

 Form1.Caption:= IntToStr(Res); // 32.
end;


 
Юрий Зотов ©   (2012-09-09 19:49) [18]


> Опять я   (09.09.12 19:37) [16]

Только я один? Странно. А другие?

Например, Sha - ОЧЕНЬ сильный алгоритмист. Причем именно в задачах подобного рода, когда решение "в лоб" не прокатывает по памяти, по скорости и т.п. Очень советую к нему прислушиваться - он говорит не просто так, он подсказывает. Только в его подсказки вдуматься нужно.


 
Юрий Зотов ©   (2012-09-09 19:58) [19]


> Опять я   (09.09.12 19:39) [17]

Подсказали ведь, уже трое. Умножение столбиком надо делать, а результат хранить в массиве, каждый элемент которого содержит одну десятичную цифру.

То же самое мы делаем на бумаге - каждая цифра умножается на 3, начиная с младшей, а если идет перенос, то корректируются старшие цифры.


 
Sha ©   (2012-09-09 20:14) [20]


> Опять я   (09.09.12 19:39) [17]
> Зная число и степень - понятно как его получить.
> Но не понятно что делать дальше!


Вот так

procedure TMainForm.Button1Click(Sender: TObject);
var
 a: TLong;
 i: integer;
begin;
 SetLength(a,1); a[0]:=3;
 i:=1;
 repeat;
   a:=Mul(a,a);
   i:=i+i;
   until i>=512; //3^512
 Memo1.Lines.Add(MulAsStr(a));
 end;


получишь ответ:
19323349832288915105454068722019581055401465761603328550184537628902466746415537 00001793942978602935439008232929458611950515350910133294088409804047872863954256 05501337273994827780623224073723381210433996682422765917915046589858829952724365 41441

тебе осталось дописать 20-30 строчек


 
DVM ©   (2012-09-09 20:51) [21]


>
> Опять я   (09.09.12 17:30) 
> Можно ли заданное натур. число М представить в виде суммы
> 2-х квадратов натуральных чисел. Например 25=3^2+4^2?

Следствие из теоремы Ферма-Эйлера:

Натуральное число представимо в виде суммы двух квадратов тогда и только тогда, когда любое простое число вида 4k + 3 входит в его разложение на простые множители в чётной степени.

http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%A4%D0%B5%D1%80%D0%BC%D0%B0_%E2%80%94_%D0%AD%D0%B9%D0%BB%D0%B5%D1%80%D0%B0


 
Опять я   (2012-09-09 20:58) [22]

Вот еще одна:


Написать программу, которая считывает натур. числа m и n и находит n/m с точностью до 25 знаков, m и n <=1000


Опять не понять. :\.
Задачи по типу: "Создайте телефонную базу" - я решаю, а эти мозги мои выносят.


 
Юрий Зотов ©   (2012-09-09 21:04) [23]


> Опять я   (09.09.12 20:58) [22]

Тоже столбиком, только уже деление.


 
Sha ©   (2012-09-09 21:07) [24]


> Опять я   (09.09.12 20:58) [22]


А это деление столбиком.
Все три задачи на умение писать элементарные циклы и немного думать.


 
Sha ©   (2012-09-09 21:08) [25]

Юрий Зотов ©   (09.09.12 21:04) [23]

опередил )


 
Логопед   (2012-09-09 21:09) [26]


> Опять я   (09.09.12 20:58) [22]

В школе бывал? Там учат делить без калькулятора.


 
Inovet ©   (2012-09-09 21:10) [27]

Почему нет на сложение столбиком? Непорядок, надо с простого начинать.


 
Давайте будем жрать!   (2012-09-09 21:26) [28]

вам лишь бы издеваться… деление в столбик какой-то…


 
Юрий Зотов ©   (2012-09-09 21:31) [29]


> Давайте будем жрать!   (09.09.12 21:26) [28]

Дружище, смени ник, а? Ну пожалуйста!
Я жрать хочу, а в доме только кофе, а выходить из дома влом. Представь, каково мне твой ник видеть?
:o)


 
Sha ©   (2012-09-09 21:34) [30]

вот-вот, он первый издевается


 
Anatoly Podgoretsky ©   (2012-09-09 21:46) [31]


> напечатать все цифры числа 3^512

Нормальная задача, непростая конечно, но нормальная.
Хотя постановка плохая, не сказано в каком виде, ведь

1,932334983228891510545406872202e+244

тоже все


 
Sha ©   (2012-09-09 21:54) [32]

> Anatoly Podgoretsky ©   (09.09.12 21:46) [31]

а так 1,9e+244 можно?


 
Inovet ©   (2012-09-09 21:54) [33]

> [31] Anatoly Podgoretsky ©   (09.09.12 21:46)
> ведь
>
> 1,932334983228891510545406872202e+244
>
> тоже все

Это другое число


 
Германн ©   (2012-09-09 21:56) [34]


> Inovet ©   (09.09.12 21:10) [27]
>
> Почему нет на сложение столбиком?

Зато и квадратного корня столбиком тоже нет. :)


 
Юрий Зотов ©   (2012-09-09 22:02) [35]

> Sha ©   (09.09.12 21:34) [30]

Хех, а я его обломил - заказал жратву на дом, через полчаса привезут.
Нам не страшен серый волк, серый волк, серый волк...
:o)


 
Inovet ©   (2012-09-09 22:21) [36]

> [35] Юрий Зотов ©   (09.09.12 22:02)
> заказал жратву на дом, через полчаса привезут.

Вот только б не писать стихи о пицце.:)


 
Anatoly Podgoretsky ©   (2012-09-09 22:43) [37]

> Inovet  (09.09.2012 22:21:36)  [36]

Стихами сыт не будешь.


 
брат Птибурдукова   (2012-09-09 23:03) [38]


> Юрий Зотов ©   (09.09.12 21:31) [29]
только из уважения к Вам, милейший…


> Зато и квадратного корня столбиком тоже нет. :)
да не... способ есть, дед в своё время учил такому. другое дело, что при теперешнем распространении калькуляторовпользоваться им нет надобности. http://ru.wikipedia.org/wiki/Квадратный_корень


 
брат Птибурдукова   (2012-09-09 23:07) [39]


> Вот только б не писать стихи о пицце.:)
та ну, пицца… я вон казан лагмана сготовил, миску умял — куда той пицце. научиться б ещё к лагману настоящую дунганскую лапшу делать… :-\


 
Германн ©   (2012-09-09 23:17) [40]


> да не... способ есть

Я знаю. Я про то что в задании этого нет. :)



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.069 c
2-1329812260
jacksotnik
2012-02-21 12:17
2013.03.22
Маска ввода


15-1350899839
AV
2012-10-22 13:57
2013.03.22
Чем занимались во времена Пушкина осенью :)


2-1337678526
vrem
2012-05-22 13:22
2013.03.22
ntfs = $indexroot не хочет считываться


15-1345982874
чудокод
2012-08-26 16:07
2013.03.22
Подскажите редактор кода с 2 колонками, как в Total Commandere


15-1331736219
Артём
2012-03-14 18:43
2013.03.22
Армия





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский