Одномерный массив

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

Ответить
pikass
Сообщения: 14
Зарегистрирован: 23 янв 2006, 02:21

Задана последовательность N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются простыми числами.

Ну понятно, что простые это 1,2,3,5,7,11,13......
Они делятся на себя на 1 и не делятся на другие числа.
А как это связать с задачей?
Помогите, может у кого-то было что-то похожее.
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Код: Выделить всё

procedure GetSumOfSimplePlacedNumbers;
const N = 10;
var
  ch: array[1..N] of Real;
  s, i: Integer;
  InArray: Boolean;
  Simple: array of Integer;
  Summ: Real;
begin
  for i := 1 to N do ch[i] := Random(1000);
  // заполняем массив простых чисел
  for s := Low(ch) to High(ch) do
  begin
    InArray := True;
    for i := Low(Simple)+1 to High(Simple) do
      if s / Simple[i] = s div Simple[i] then InArray := False;
    if InArray then
    begin
      SetLength(Simple, Length(Simple)+1);
      Simple[High(Simple)] := s;
    end;
  end;
  // считаем сумму
  Summ := 0;
  for i := Low(Simple) to High(Simple) do
    Summ := Summ + ch[Simple[i]];
  ShowMessage('Сумма: ' + FloatToStr(Summ));
end;
С уважением, Lost Angel...
SydNey
Сообщения: 3
Зарегистрирован: 26 сен 2005, 17:27
Откуда: Уездный город N
Контактная информация:

Формируешь множество простых чисел "решетом Эратосфена" и проходишь по массиву: если номер элемента входит в это множество, прибавляешь элемент к сумме.
pikass
Сообщения: 14
Зарегистрирован: 23 янв 2006, 02:21

Спасибо большое, работает хорошо.
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

Это не форум программистов, а форум по решению практических работ?
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Посмотрит - научится.
А что, алгоритм лучше словами? ;) )))
С уважением, Lost Angel...
Ответить