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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2009, 13:12   #1
Stingys
Новичок
Джуниор
 
Регистрация: 10.11.2009
Сообщений: 1
По умолчанию Вивести числа из множества

Задание: Из данного множества вывести на экран все числа Мерсена, которые меньше N.(Простое число называется числом Мерсена если его можна представить в виде 2^p-1, где р также просто число).
Вот зделал програмку, алгоритм такой:Если число находится в множестве, если оно больше N, и если оно не равно числу Мерсена, то исключаем его из сножестава, а потом выводим оставшееся множество...Только оно выводит все числа меньшие N хотя в условии проверки у меня есть проверка на число Мерсена, посмотрите плз,может что-то подскажете:

program labn9;
uses CRT;
const a:array[1..10] of longint=(3,5,7,11,13,17,19,23,29,31 );
var st: set of byte;
j,i,n,p: byte; l:real;

begin
ClrScr;
Randomize;
for i:=1 to 30 do st:=st+[Random(255)];
writeln('');
writeln('dannoe mnojestvo:');
writeln('');
for i:=0 to 255 do if i in st then writeln(i);
writeln('');

writeln('vvedite n');
readln(n);

for j:=1 to 10 do
begin
p:=a[j];l:=exp(ln(2)*p)-1;
for i:=0 to 255 do if (i in st) and (i>n) and (i<>l) then st:=st-[i]
end;
writeln('chisla Mersena menshie chisla N vyvedeny na ekrane:');
for i:=0 to 255 do if i in st then writeln(i);

readln;
end.
Stingys вне форума Ответить с цитированием
Старый 10.11.2009, 17:34   #2
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Проверку на соответствие рассматриваемого числа чичлу Марсена необходимо выполнять для каждого рассматриваемого числа:
Код:
for i:=0 to 255 do if (i in st) and (i>n) then
  for j:=1 to 10 do
  begin 
  p:=a[j];l:=exp(ln(2)*p)-1;
  if  (i<>l) then st:=st-[i];
  end;
Всякое безобразие должно быть единообразным. Тогда это называется порядком.

Последний раз редактировалось Anatole; 11.11.2009 в 13:01.
Anatole вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как числа в двоичном виде вывести в столбик по 4 числа? Equalizer Общие вопросы C/C++ 11 27.09.2009 14:15
2 столбец для того, чтобы автоматически создавались числа, которые позволяли уравнивать числа в 3 столбце ppv Microsoft Office Excel 37 05.08.2009 21:19
потом убрать из множества все числа фибоначчи J_o_h_n_ Паскаль, Turbo Pascal, PascalABC.NET 5 18.04.2009 21:25
Даны натуральные числа m,n. Посчитать сумму m последнего числа n. лялька Паскаль, Turbo Pascal, PascalABC.NET 6 25.12.2008 15:22
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49