Проверочная работа с решением по программированию на языке Pascal. Циклы


Проверочная работа с решением по программированию на языке Pascal. Циклы
Задача № 1. Подсчитать общее число делителей натурального числаФормулировка. Дано натуральное число. Подсчитать общее количество его делителей.
Решение. Задача достаточно похожа на две предыдущие. В ней также необходимо провести перебор в цикле некоторого количества натуральных чисел на предмет обнаружения делителей n, но при этом необходимо найти не первый из них с какого-либо конца отрезка [1, n] (это отрезок, содержащий все числа от 1 до n включительно), а посчитать их. Это можно сделать с помощью счетчика count, который нужно обнулить непосредственно перед входом в цикл. Затем в условном операторе if в случае истинности условия делимости числа n (n mod i = 0) нужно увеличивать счетчик count на единицу (это удобно делать с помощью оператора inc).
Алгоритм на естественном языке:
Ввод n;
Обнуление переменной count (в силу необходимости работать с ее значением без предварительного присваивания ей какого-либо числа)
Запуск цикла, при котором i изменяется от 1 до n. В цикле:
Если n делится на i (то есть, остаток от деления числа n на i равен 0), то увеличиваем значение переменной count на 1;
Вывод на экран значения переменной count.
Код:
program CountDiv;
var i, n, count: word;
begin
readln(n);
count := 0;
for i := 1 to n do begin
if n mod i = 0 then inc(count)
end;
writeln(count)
end.
Задача № 2. Проверить, является ли заданное натуральное число простымФормулировка. Дано натуральное число. Проверить, является ли оно простым.
Примечание: простым называется натуральное число, которое имеет ровно два различных натуральных делителя: единицу и само это число.
Решение. Задача отличается от предыдущей только тем, что вместо вывода на экран числа делителей, содержащегося в переменной count, необходимо выполнить проверку равенства счетчика числу 2. Если у числа найдено всего два делителя, то оно простое и нужно вывести положительный ответ, в противном случае – отрицательный ответ. А проверку через условный оператор, как мы уже знаем, можно заменить на вывод результата самого булевского выражения с помощью оператора write (writeln).
Код:
program PrimeTest;
var i, n, count: word;
begin
readln(n);
count := 0;
for i := 1 to n do begin
if n mod i = 0 then inc(count)
end;
writeln(count = 2)
end.