В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История

Дано натуральное число n. Найти все меньшие n числа Мерсенна. (Простое число называется числом Мерсенна, если оно может быть

Показать ответ
Ответ:
kM4X1Mk
kM4X1Mk
16.04.2019 23:00
procedure isprime(n: longint; var ip: boolean);
var i, sqrtn: longint;
begin
  if (n >= 5) and ((n - 1) mod 6 = 0) or ((n + 1) mod 6 = 0)
    then begin
      i := 5;
      sqrtn := trunc(sqrt(n));
      ip := false;
      while i <= sqrtn do
        begin
          if n mod i = 0 then exit;
          inc(i, 2)
        end;
      ip := true
    end
    else ip := (n = 2) or (n = 3)
end;
 
var n, m: longint;
    mp: boolean;
 
begin
  m := 3;
  write('n = ');
  readln(n);
  if n <= m
    then writeln('Prime Mersenne numbers, smaller this number, don''t exist.')
    else begin
      writeln('Prime Mersenne numbers, there is less than this number:');
      while n > m do
        begin
          isprime(m, mp);
          if mp then writeln(m);
          m := m * 2 + 1
        end
    end;
  readln
end.
0,0(0 оценок)
Популярные вопросы: Другие предметы
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота