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

Паскаль абс: составить программу нахождения чисел из интервала [n; m], имеющих наибольшее количество делителей( количество делителей определить с подпрограммы)

Ответ:
zalina163
zalina163
04.10.2020 02:54
//PascalABC.NET 3.2 сборка 1318

var
  n, m, max, k, i: integer;
  ar: array of integer;

function CountOfDel(n: integer): integer;
var
  i, k: integer;
begin
if n>0 then
begin
  for i := 1 to n do
    if n mod i = 0 then inc(k);
end
  else
  for i:= n to -1 do
    if n mod i = 0 then
 inc(k);
  CountofDel := k;
if n=0 then
  CountofDel:=0;
end;

begin
  readln(n, m);
  k := 0;
  max := 0;
  for i := n to m do
  begin
    if CountOfDel(i)=0 then
      begin
        writeln('0');
        exit;
      end;
    if CountOfDel(i) > max then
    begin
      k := 1;
      setlength(ar, k);
      ar[k - 1] := i;
      max := CountOfDel(i);
    end
    else
    if CountOfDel(i) = max then
    begin
      inc(k);
      setlength(ar, k);
      ar[k - 1] := i;
    end;
  end;
  for i := 0 to k - 1 do
    write(ar[i]:4);
end.

Пример ввода:
1 10
Пример вывода:
6 8 10
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?