Присоединиться

11 класс·средний уровень

Найдите все натуральные числа, принадлежащие отрезку [2 000 000; 3 000

Условие

Рассмотрим произвольное натуральное число, представим его всеми возможными способами в виде произведения двух натуральных чисел и найдём для каждого такого произведения разность сомножителей. Например, для числа 16 получим: 16 = 16 · 1 = 8 · 2 = 4 · 4, множество разностей содержит числа 15, 6 и 0. Найдите все натуральные числа, принадлежащие отрезку [2 000 000; 3 000 000], у которых составленное описанным способом множество разностей будет содержать не меньше трёх элементов, не превышающих 115. В ответе перечислите найденные числа в порядке возрастания.

Ответ:

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Заметим, что у каждого делителя числа имеется пара, например, пары делителей числа 16 будут выглядеть так: 1 и 16, 2 и 8, 4 и 4, всего пять различных делителей. Отсюда можно заключить, что имеет смысл перебирать возможные делители числа от единицы до корня от самого числа. Если разность результата целочисленного деления рассматриваемого в данный момент числа на его найденный делитель и этого делителя не будет превышать 115, в переменной count будем накапливать единицу. Если число count после работы вложенного цикла будет не меньше трёх — выводим число на экран. Приведём решение на языке Pascal.var count, i, j: longint; sqrtI: real;begin for i := 2000000 to 3000000 do begin sqrtI := sqrt(i); count := 0; for j := 1 to round(sqrtI) do begin if (i mod j =

Осталось ещё 4 шага

  1. then begin if (((i div j) - j) <…

  2. then count := count + 1; end; end; if count >…

  3. cnt++; if (cnt >=…

  4. printf("%i ", n); break; return…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Обработка целочисленной информации»