kashihina
?>

Создать программу которая выведет на экран простые числа в диапазоне от n до m.n и m - целые числа, которые вводятся с клавиатуры.

Информатика

Ответы

васильевич
// PascalABC.NET 3.3, сборка 1576 от 16.11.2017
// Внимание! Если программа не работает, обновите версию!
function Simple(n:integer):boolean;
  begin 
  result := true; 
  if n = 1 then result := false; 
  For var i:= 2 to n div 2 do
    if n mod i = 0 then      result:= false;
  end;
begin
range(readInteger, ReadInteger).Where(t -> Simple(t)).Print
end.

Пример:
1 100
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
гайсанов
Условие Фано означает, что никакое кодовое слово не может быть началом другого кодового слова. Поскольку буква Н кодируется нулем, значит, мы не можем кодировать Л и М таким образом, чтобы оно начиналось с нуля. Значит, будем кодировать так, чтобы начиналось с единицы. Допустим, Л - 11. Тогда М невозможно закодировать двумя символами. Значит, будем использовать три. Пусть Л - 110, а М - 111. Следовательно:
Н = 0 (1 символ)
К = 10 (2 символа)
Л = 110 (3 символа)
М = 111 (3 символа)

Наименьшая возможная суммарная всех кодов будет: 1 + 2 + 3 + 3 = 9
zagadka27
Из условия Фано следует, что в префиксном неравномерном двоичном коде, предусматривающем однозначное декодирование, ни одно кодовое слово не может быть началом другого. 

Таким образом, оставшиеся три кода не могут быть началом кода буквы Б, и началами кодов друг друга.

То есть коды 0 и 00 отпадают сразу, т.к. это начала буквы Б.

Если предположить, что один из кодов равен 1, и что нам нужны кратчайшие коды, значит оставшиеся коды могут быть только 01 и 011.

Если предположить, что коды двузначны, тогда кодами могут быть 01, 10 и 11.

В первом случае суммарная длина кодов равна 1+2+3+3 = 9, во втором случае - 2+2+2+3 = 9.

Оба варианта подходят, кратчайшая суммарная длина - 9

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Создать программу которая выведет на экран простые числа в диапазоне от n до m.n и m - целые числа, которые вводятся с клавиатуры.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Филиппович_Николаевич
denisovatat7
алексеевич810
zybin41iz81
murza2007
Ананян Иван1281
Bobkov
Anastasiamoscow80
muzeynizhn
Vladimirovich58
com4047797
d43irina
beyound2006193
ooofishai4064
Tatyana1374