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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2008, 20:21   #1
proq
Новичок
Джуниор
 
Регистрация: 17.07.2008
Сообщений: 1
По умолчанию помогите решить задачи

написать программу,которая находит n-ое по счету натуральное число,начиная от 2 , среди простых делителей которого нет других чисел
кроме 2,3,5 и 7.значение n вводится.

написать программу которая в числовой последовательности найдет самую длинную цепочку подряд идущих чередующихся чисел 0 и 1 (например 01010 или 101010) .массивы использовать нельзя

Последний раз редактировалось proq; 17.07.2008 в 20:36.
proq вне форума Ответить с цитированием
Старый 17.07.2008, 20:58   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Вот пример второй задачи.
Код:
var
  s: string;
  i, j, maxNum, maxPos, k: byte;
begin
  write('Posledovatelnost = ');
  readln(s);
  for i := 1 to length(s) do
  begin
    if (s[i] = '0') or (s[i] = '1') then
    begin
      k := 0;
      for j := i to length(s) do
        if (s[j] = '0') or (s[j] = '1') then inc(k) else
        if k > maxNum then
        begin
          maxNum := k;
          maxPos := i;
          i := j;
          break
        end;
    end;
  end;
  write(copy(s,maxPos, maxNum));
  readln
end.
Числовая последовательность представлена в виде строки. Если же требуется вводить число, то вводим новую переменную типа longint или ещё какую и переводим потом в строку (процедурой str)
eoln вне форума Ответить с цитированием
Старый 17.07.2008, 22:14   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Задача №1.
Код:
uses crt;
const d=[2,3,5,7];
type mng=set of byte;
procedure PrDel(a:longint;var m:mng);//процедура находит все простые делители числа
var n:longint;
    b:boolean;
begin
n:=2;m:=[];
while a>0 do
  begin
    b:=true;
    while n <= a div 2 do
       begin
         if a mod n=0 then
           begin
             include(m,n);//собираем простые делители во множество
             a:=a div n;
             b:=false;
             break;
           end;
         inc(n);
      end;
   if b then
     begin
       include(m,a);//если делителей нет, заносим само число
       break;
     end;
  end;
end;
var n:longint;
mn:mng;
i,k:integer;
begin
clrscr;
write('n=');readln(n);
i:=1;k:=0;
repeat
i:=i+1;
PrDel(i,mn);
if mn<=d then k:=k+1;//если все элементы множества mn есть во множестве d, считаем
until k=n;
writeln('Chislo=',i);
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите решить задачи!!! black_soul Фриланс 13 21.07.2008 09:22
Помогите решить задачи Andyst Помощь студентам 3 25.12.2007 15:14
ПОМОГИТЕ РЕШИТЬ ЗАДАЧИ С++ lawny Фриланс 1 24.12.2007 20:58
Помогите решить две задачи на С/С++ Сема Помощь студентам 3 24.12.2007 07:31
Помогите решить задачи! Вилен Помощь студентам 2 10.10.2007 23:12