1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.5 Упр.16 Задание 2 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 3.5 Упр.16 Задание 2 ГДЗ Семакин 10 класс (Информатика)

Задача

Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 16. Составить программу для нахождения чисел из интервала [М, N], имеющих наибольшее количество делителей. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad2/16 98

Подробный ответ

Сначала составим вспомогательную функцию, которая считает количество делителей числа. Для этого достаточно перебрать делители от $$1$$ до $$\sqrt{n}$$: если $$i$$ делит $$n$$, то вместе с ним делителем является и $$\frac{n}{i}$$. Поэтому при каждом найденном делителе количество увеличивается на $$2$$, а для полного квадрата нужно учесть, что корень считается один раз.

Затем в основном алгоритме:

  • вводим границы интервала $$[M, N]$$;
  • находим максимальное количество делителей среди всех чисел этого интервала;
  • выводим все числа, у которых количество делителей равно найденному максимуму.

function KolDel(n: longint): integer;
var i, k: integer;
begin
  k := 0;
  for i := 1 to trunc(sqrt(n)) do
    if n mod i = 0 then
    begin
      k := k + 2;
      if i * i = n then k := k — 1;
    end;
  KolDel := k;
end;

var m, n, i: longint;
  mx: integer;
begin
  repeat
    writeln(‘Введите интервал вычислений n>m’);
    readln(m, n);
  until n > m;

  mx := 0;
  for i := m to n do
    if KolDel(i) > mx then mx := KolDel(i);

  writeln(‘Максимальное количество делителей = ‘, mx, ‘ имеют:’);
  for i := m to n do
    if KolDel(i) = mx then write(i, ‘ ‘);
end.

В этой программе функция KolDel возвращает количество делителей числа, а основной цикл находит все числа интервала с наибольшим значением этого количества.

Ответ

Программа находит все числа из интервала $$[M, N]$$, имеющие наибольшее количество делителей, и выводит их на экран.



Общая оценка
3.5 / 5
Другие учебники
Другие предметы