Найдите все натуральные числа, принадлежащие отрезку [2 000 000; 3 000
Условие
Рассмотрим произвольное натуральное число, представим его всеми возможными способами в виде произведения двух натуральных чисел и найдём для каждого такого произведения разность сомножителей. Например, для числа 16 получим: 16 = 16 · 1 = 8 · 2 = 4 · 4, множество разностей содержит числа 15, 6 и 0. Найдите все натуральные числа, принадлежащие отрезку [2 000 000; 3 000 000], у которых составленное описанным способом множество разностей будет содержать не меньше трёх элементов, не превышающих 115. В ответе перечислите найденные числа в порядке возрастания.
Ответ:
Ответ
Ответ и полный разбор откроются после входа
Посмотреть ответРешение по шагам
Как рассуждать
Решение. Заметим, что у каждого делителя числа имеется пара, например, пары делителей числа 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 шага
then begin if (((i div j) - j) <…
then count := count + 1; end; end; if count >…
cnt++; if (cnt >=…
printf("%i ", n); break; return…
Бесплатно · займёт минуту