Найдите все натуральные числа, принадлежащие отрезку [1 000 000; 2 000
Условие
Рассмотрим произвольное натуральное число, представим его всеми возможными способами в виде произведения двух натуральных чисел и найдём для каждого такого произведения разность сомножителей. Например, для числа 16 получим: 16 = 161 = 82 = 4*4, множество разностей содержит числа 15, 6 и 0. Найдите все натуральные числа, принадлежащие отрезку [1 000 000; 2 000 000], у которых составленное описанным способом множество разностей будет содержать не меньше трёх элементов, не превышающих 100. В ответе перечислите найденные числа в порядке возрастания.
Ответ:
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Заметим, что у каждого делителя числа имеется пара, например, пары делителей числа 16 будут выглядеть так: 1 и 16, 2 и 8, 4 и 4, всего пять различных делителей. Отсюда можно заключить, что имеет смысл перебирать возможные делители числа от единицы до корня от самого числа. Если разность результата целочисленного деления рассматриваемого в данный момент числа на его найденный делитель и этого делителя не будет превышать 100, в переменной count будем накапливать единицу. Если число count после работы вложенного цикла будет не меньше трёх — выводим число на экран. Приведём решение на языке Pascal.var count, i, j: longint; sqrtI: real;begin for i := 1000000 to 2000000 do begin sqrtI := sqrt(i); count := 0; for j := 1 to round(sqrtI) do begin if (i mod j =
Осталось ещё 2 шага
then begin if (((i div j) - j) <…
then count := count + 1; end; end; if count >…
Бесплатно · займёт минуту