25 задание. ЕГЭ-2021. Информатика. Демонстрационный вариант.
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя в таблицу на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке таблицы также должны следовать в порядке возрастания.
Например, в диапазоне [5; 9] ровно два целых различных натуральных делителя имеют числа 6 и 8, поэтому для этого диапазона таблица на экране должна содержать следующие значения:
2 | 3 |
3 | 4 |
Разбор задания
На языке Pascal
Для решения будем использовать перебор. Проверяем количество делителей каждого числа из диапазона, если их количество равно двум — записываем их в массив d.
var
numDel, i, j: longint;
d: array[1..2] of longint;
begin
for i := 174457 to 174505 do begin
numDel := 0;
for j := 2 to i div 2 do begin
if i mod j = 0 then begin
numDel := numDel + 1;
if numDel > 2 then break;
d[numDel] := j;
end;
end;
if numDel = 2 then writeln(d[1], ‘ ‘, d[2]);
end;
end.
ОТВЕТ:
3 | 58153 |
7 | 24923 |
59 | 2957 |
13 | 13421 |
149 | 1171 |
5 | 34897 |
211 | 827 |
2 | 87251 |
В результате работы программа должна вывести на экран эти числа.