Задание ЕГЭ 17. Проверка делимости чисел.
Теоретический материал.
При решении задания 17 необходимо перебрать числа из определенного диапазона и проверить, какие из них удовлетворяют тому или иному условию. В задаче нет ограничений на время выполнения, поэтому можно использовать неоптимальные циклические алгоритмы, предполагающие большое количество итераций.
Общая структура перебора в Pascal:
( подсчет количества)l:
Рассматривается множество целых чисел, принадлежащих числовому отрезку [4668; 10414], которые делятся на 4 и не делятся на 7, 17. Найдите количество таких чисел и максимальное из них. В ответе запишите два целых числа: сначала количество, затем максимальное число.
Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.
Решение:Так как нужно найти максимальное число, нам выгоднее перебирать числа в порядке возрастания, тогда последнее найдённое число –
Напишем программу языке программирования Паскаль:
var i, c, max: integer;
begin
c:=0;
max:=0;
for i:=4668 to 10414 do
begin
if (i mod 4 = 0) and (i mod 7 <> 0) and (i mod 17 <> 0) then
begin
c := c + 1;
max:=i;
end;
end;
Writeln(c);
Writeln(max);
End.
Пример 2. Сумма и минимальное значение
Рассматривается множество целых чисел, принадлежащих числовому отрезку [-2031; 5021], которые делятся на 7, являются нечётными и не делятся на 3. Найдите сумму таких чисел и минимальное из них. В ответе запишите два целых числа: минимальное значение, затем сумму.
Решение:
var i,sum,min:integer;
begin
min:=5022;
sum:=0;
for i:=-2031 to 5021 do
begin
if (i mod 7 = 0) and (i mod 2 <> 0) and (i mod 3 <> 0) then
begin
sum := sum + i;
if i < min then min:=i;
end;
end;
Writeln(sum);
Writeln(min);
End.
2 способ:
Так как нужно найти минимальное число, удобно перебирать числа в порядке убывания, тогда последнее найдённое число –
var i, sum, min: integer;
begin
min:=5022;
sum:=0;
for i:=5021 downto -2031 do
begin
if (i mod 7 = 0) and (i mod 2 <> 0) and (i mod 3 <> 0) then
begin
sum := sum + i;
min:=i;
end;
end;
Writeln(sum);
Writeln(min);
End.