Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2010, 15:17   #1
Лесная Эльфийка
Пользователь
 
Аватар для Лесная Эльфийка
 
Регистрация: 03.12.2010
Сообщений: 35
Сообщение Найти наибольшую по длине последовательность простых чисел в массиве

Даны натуральное число n, целочисленный
массив А размерностью n. Рассмотреть отрезки последовательности А (под
последовательности идущих подряд элементов), состоящие из простых чисел.
Определить наибольшую из длин рассматриваемых отрезков
Лесная Эльфийка вне форума Ответить с цитированием
Старый 14.12.2010, 15:37   #2
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

Цитата:
Сообщение от Лесная Эльфийка Посмотреть сообщение
Даны натуральное число n, целочисленный
массив А размерностью n.
проблем завести массив быть не может, тут куча тем про массивы.
Цитата:
Рассмотреть отрезки последовательности А (под
последовательности идущих подряд элементов), состоящие из простых чисел.
заводите счетчик. далее цикл по всем элементам массива и проверяете отрезки. пример:
массив(1,2,3,3,3,3,3,4,4,4,5,5,5) тут 2 отрезка (33333) и (555) один длиной 5 второй длиной 3.
простые числа это те которые делятся на самих себя и на 1 (вроде так)
Цитата:
Определить наибольшую из длин рассматриваемых отрезков
там же в цикле сравниваете их длины примерно как max элемент в массиве.
не вижу ничего сложного.
наверно описать массив тут самое сложное
wm_leviathan вне форума Ответить с цитированием
Старый 14.12.2010, 16:24   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на форуме неоднократно решались задачи определения самой длинной последовательности чего-нибудь (будь то цифр в строке, или положительный чисел, или единиц - не суть важно!)
Если не сможете найти - помогу.
Так вся идея построена на том, что мы идём по массиву, как только условие выполняется (в данном случае удобно дёргать функцию, которая возвращает True или False - по переданному в неё число, пример такой функции ниже), включаем счётчик. как только условие перестаёт выполняться - проверяем - счётчик больше, чем максимальное_значение_длин_последов ательности - если больше - присваиваем
максимальное_значение_длин_последов ательности := счётчик;

и всё.

p.s.
wm_leviathan прав. я просто попытался алгоритм "разжевать"...


p.p.s. пример функции проверки числа "на простоту"
Код:
function isPrime(X: LongInt): boolean;
var i: integer;
Begin
     isPrime:=false;
     if x<2 then Exit;
     if not odd(x) and (x<>2) { проверяем на чётность  }
          then exit;
     i:=3;
     while i <= sqrt(x) do { проверяем только нечётные }
     begin
          if x mod i = 0 then Exit;
          inc(i,2);
     end;
     isPrime:=true;
End;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. найти последовательность всех чисел от 1 до n, кроме чисел с одинаковыми цифрами bayda06 Помощь студентам 7 01.07.2010 18:18
Найти последовательность действительных чисел,получающихся при чтении данной матрицы по СПИРАЛИ. anta Общие вопросы C/C++ 17 02.06.2009 18:07
Дана последовательность с n целых чисел. Найти количество елементов, кратных ее первому елементу Alex1991 Помощь студентам 3 10.03.2009 09:02
НАпечатать наибольшую последовательность состоящую gred Помощь студентам 6 23.03.2008 16:12