Вывод цифр, которые являються квадратом непарных чисел

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Igor_Petrenko
Сообщения: 1
Зарегистрирован: 05 май 2014, 19:22
Контактная информация:

05 май 2014, 19:52

Всем доброго времени суток :confused:
Есть Lst1, где записанны в строках цифры 1,2, 4, 5, 9, 10, 16, 25, 36, 40, 49, 64.
Мне нужно вывести в список Lst2 все числа, которые являються квадратом непраных чисел. Ясно, что среди этих цифр только 1 , 9, 25 и 49 являються таковыми.

Но глупо же написать такой код:
[syntax='delphi'] procedure TForm1.Button1Click(Sender: TObject);
begin
Lst2.Items.Add('1');
Lst2.Items.Add('9');
Lst2.Items.Add('25');
Lst2.Items.Add('49');
end; [/syntax]

Я так понял, что нужно проверить найдем ли корень из цифры в кжадой строке, и если кореньт найден, а число непарное, то мы его выводим во второй список. Но как это "написать".
Помогите, направьте куда-то в нужное русло)) Очень нужно.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

07 май 2014, 00:05

Для каждого числа x проверяем:
s := round(sqrt(x));
if (sqr(s) = x) and (odd(s)) then {вывести в lst2}
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

07 май 2014, 07:04

Igor_Petrenko писал(а):Всем доброго времени суток :confused:
Есть Lst1, где записанны в строках цифры 1,2, 4, 5, 9, 10, 16, 25, 36, 40, 49, 64.
Мне нужно вывести в список Lst2 все числа, которые являються квадратом непраных чисел. Ясно, что среди этих цифр только 1 , 9, 25 и 49 являються таковыми.
А как же 4, 16, 36 и 64? Всякий квадрат всегда одного числа, у него нет пары. Или имеется ввиду, что у числа есть только один сосед в том же ряду и нужен квадрат такого числа? Тогда парный квадрат здесь один - это число 1, остальные не парные: раз у числа один сосед, то оно крайнее в ряду, крайние - это 1 и 64, 64 - это 8 в квадрате, а такого числа в ряду вообще нет и соседей по ряду оно не имеет, значит исключаем только 1. Число ведь может быть и иррациональным, а таких в ряду тоже вообще нет, значит они не парны, их квадраты (2, 5, 10, 40) тоже оставляем.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

07 май 2014, 07:05

Igor_Petrenko писал(а):Я так понял, что нужно проверить найдем ли корень из цифры в кжадой строке,
Не бывает корней из цифр, корней из букв, корней из пробелов, корней из спецсимволов и корней из знаков препинания.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Сионист
Сообщения: 1077
Зарегистрирован: 31 мар 2014, 06:18

07 май 2014, 07:12

Igor_Petrenko писал(а):Всем доброго времени суток :confused:
Есть Lst1, где записанны в строках цифры 1,2, 4, 5, 9, 10, 16, 25, 36, 40, 49, 64.
Нет цифр 10, 16, 25, 36, 40, 49 и 64.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Ответить