Попытайтесь самостоятельно записать алгоритм нахождения первого простого делителя, представленный на рис. 1.3, на известном вам языке программирования. Протестируйте свою программу на числах 121, 135 и 847. Если программа написана правильно, то результатами её выполнения будут числа 11, 5 и 7 соответственно.
На рис. 1.3: вводится натуральное число , переменной присваивается 2; пока , значение увеличивается на 1; затем выводится .
Запишем шаги схемы на Паскале. Операция mod даёт остаток от деления: при нулевом остатке текущий делитель подходит, и цикл заканчивается.
program FirstPrimeDivisor;
var
n, d: integer;
begin
readln(n);
d := ;
while n mod d <> do
d := d + ;
writeln(d)
end.
Строка readln(n) считывает число. Присваивание d := начинает проверку с наименьшего простого числа. Цикл увеличивает d на единицу, если число n на него не делится. После остановки writeln(d) выводит наименьший делитель, больший единицы. Он обязательно прост: если бы
Проверим указанные числа, прослеживая остатки:
| Проверка делителей | Первый нулевой остаток | Вывод | |
|---|---|---|---|
| Для |
|||
| Для |
Для
Программа выводит: для
